js API 高德开放平台

版权声明: https://blog.csdn.net/qq_32842925/article/details/82945573

平台介绍

  • 高德是阿里旗下的偏向地面服务的一个开放服务平台,提供了众多稳定、质量高、数据结构清晰明了的开放api;
  • 开放api接口涵盖web应用、移动端、pc端各种语言以及微信小程序等的数据接口;
  • 接口面向个人开发者和企业开发者,申请方便!
    平台服务

解决方案

  • 行业解决方案:
    出行
    O2O
    电商
    社交
    运动
    游戏
    智能硬件
    货运

  • 提供自定义地图、数据可视化和数据分析管理控制台。

详细的开发者文档

开发者文档以ip定位为例

  • IP定位

最后更新时间: 2018年06月08日

  • 产品介绍

IP定位是一个简单的HTTP接口,根据用户输入的IP地址,能够快速的帮用户定位IP的所在位置。

使用API前您需先申请Key。若无高德地图API账号需要先申请账号。

  • 适用场景

希望能够将IP信息转换为地理位置信息。

  • 使用限制

服务调用量的限制请点击这里查阅。

  • 使用说明

第一步,申请”web服务 API”密钥(Key);

第二步,拼接HTTP请求URL,第一步申请的Key需作为必填参数一同发送;

第三步,接收HTTP请求返回的数据(JSON或XML格式),解析数据。

如无特殊声明,接口的输入参数和输出数据编码全部统一为UTF-8。

  • IP定位

IP定位API服务地址:

https://restapi.amap.com/v3/ip?parameters
parameters代表的参数包括必填参数和可选参数。所有参数均使用和号字符(&)进行分隔。下面的列表枚举了这些参数及其使用规则。

在这里插入图片描述

在这里插入图片描述

使用平台提供的接口

  • 控制台创建应用

    当然,要先注册一个账户,并且至少升级为个人实名认证用户或者企业认证用户
    在这里插入图片描述

  • 配置你需要的服务,生成对应的key

在这里插入图片描述

  • 最后得到一个这样的key值:

    这个key就是ajax提交中用于验证的那个key值了
    在这里插入图片描述

  • 自己封装的一个ajax方法

/*
ajax 方法
options 配置信息
*/
function ajax(options) {
    options.type = /post/i.test(options.type) ? 'POST' : 'GET';
    //console.log( options.type);
    //异步或者同步
    options.async = options.async === false ? false : true;
    /*console.log(options.async)*/
    var xhr = new XMLHttpRequest(); 
    var data = ''; //user=韩梅梅&age=18
    for (var k in options.data) {
        data += k + '=' + encodeURIComponent(options.data[k]) + '&';
    }
    //是get还是post
    if (options.type === 'GET') {
        if (!/\?/.test(options.url)) {
            options.url += '?';
        } else {
            if (!/(&\s*)$/.test(options.url)) {
                options.url += '&';
            }
        }
        options.url += data + '_=' + new Date().getTime();
        data = null;
    }
    xhr.open(options.type, options.url, options.async);
    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');
    xhr.onreadystatechange = function () {
        if (this.readyState === 4) { //0 1 2 3 4
            if (this.status > 199 && this.status < 300 || this.status === 304) {
                options.success && options.success.call(this, strJsonCode(this.response));
            } else {
                options.error && options.error.call(this, this.status);
            }
        }
    };
    xhr.send(data);
}

//将字符串打包成json数据,打包失败,默认返回原字符串
function strJsonCode(str) {
    try {
        return JSON.parse(str);
    } catch (e) { 
        return str;
    }
}
//时间打包函数	
function formatterDateTime() {
	var date = new Date()
	var month = date.getMonth() + 1
	var datetime = date.getFullYear() +
	    "" // "年"
	    +
	    (month >= 10 ? month : "0" + month) +
	    "" // "月"
	    +
	    (date.getDate() < 10 ? "0" + date.getDate() : date
	        .getDate()) +
	    "" +
	    (date.getHours() < 10 ? "0" + date.getHours() : date
	        .getHours()) +
	    "" +
	    (date.getMinutes() < 10 ? "0" + date.getMinutes() : date
	        .getMinutes()) +
	    "" +
	    (date.getSeconds() < 10 ? "0" + date.getSeconds() : date
	        .getSeconds());
	return datetime;
}
  • 根据参数信息,将必要参数给予规定值:
ajax({
    type: 'get',
    url: 'https://restapi.amap.com/v3/ip?parameters',
    dataType: 'json',
    data: {
        "key": "***********your key************",
        "output": "JSON"
    },
    error: function (XmlHttpRequest, textStatus, errorThrown) {
        alert("查询失败!");
    },
    success: function (result) {
        console.log(result);
    }
});

接口数据将被result参数接收。
在这里插入图片描述

开发文档链接

猜你喜欢

转载自blog.csdn.net/qq_32842925/article/details/82945573