在使用高德地图的web 服务之前,需要先注册为高德开发者 https://lbs.amap.com/api/webservice/summary/
注册完毕后,进入控制台可以看到如下界面:
点击“应用管理–>我的应用–>创建新应用”
创建完毕之后,点击加号(添加key)
有了key之后,就可以使用高德提供的web服务了
以高德提供的“行政区查询”功能为例,首先我们访问 https://lbs.amap.com/api/webservice/guide/api/district, 并阅读相关内容,得到此web服务的核心内容如下:
目前高德提供的服务是唯一能让用户查询到乡镇/街道级别信息且小时级更新数据的公开API。
例如:中国>山东省>济南市>历下区>舜华路街道(国>省>市>区>街道)。 使用说明 第一步,申请”Web服务API”密钥(Key);
第二步,拼接HTTP请求URL,第一步申请的Key需作为必填参数一同发送;
第三步,接收HTTP请求返回的数据(JSON或XML格式),解析数据。 如无特殊声明,接口的输入参数和输出数据编码全部统一为UTF-8。行政区域查询API服务地址: https://restapi.amap.com/v3/config/district?parameters
具体parameters的内容请详细阅读该网页 请求方式:GET
然后我们使用python来调用一下高德的web服务API
import urllib3
import string
from urllib.parse import quote
http = urllib3.PoolManager();
key = "*****52d36087cb49cdebc3da4a*****" ## 通过前面步骤创建的key,key参数为必需参数
keywords = "浙江"
output = "XML" ## 支持XML和JSON
url = quote(f"https://restapi.amap.com/v3/config/district?key={key}&keywords={keywords}&output={output}", safe = string.printable)
resp = http.request('GET', url)
print(resp.data.decode("utf-8"))
然后运行得到结果如下:
<?xml version="1.0" encoding="UTF-8"?>
<response><status>1</status><info>OK</info><infocode>10000</infocode><count>1</count><suggestion><keywords type="list"/><cities type="list"/></suggestion><districts type="list"><district><citycode></citycode><adcode>330000</adcode><name>浙江省</name><center>120.153576,30.287459</center><level>province</level><districts type="list"><district><citycode>0577</citycode><adcode>330300</adcode><name>温州市</name><center>120.672111,28.000575</center><level>city</level><districts type="list"/></district><district><citycode>0574</citycode><adcode>330200</adcode><name>宁波市</name><center>121.549792,29.868388</center><level>city</level><districts type="list"/></district><district><citycode>0580</citycode><adcode>330900</adcode><name>舟山市</name><center>122.106863,30.016028</center><level>city</level><districts type="list"/></district><district><citycode>0573</citycode><adcode>330400</adcode><name>嘉兴市</name><center>120.750865,30.762653</center><level>city</level><districts type="list"/></district><district><citycode>0576</citycode><adcode>331000</adcode><name>台州市</name><center>121.428599,28.661378</center><level>city</level><districts type="list"/></district><district><citycode>0578</citycode><adcode>331100</adcode><name>丽水市</name><center>119.921786,28.451993</center><level>city</level><districts type="list"/></district><district><citycode>0571</citycode><adcode>330100</adcode><name>杭州市</name><center>120.153576,30.287459</center><level>city</level><districts type="list"/></district><district><citycode>0575</citycode><adcode>330600</adcode><name>绍兴市</name><center>120.582112,29.997117</center><level>city</level><districts type="list"/></district><district><citycode>0572</citycode><adcode>330500</adcode><name>湖州市</name><center>120.102398,30.867198</center><level>city</level><districts type="list"/></district><district><citycode>0570</citycode><adcode>330800</adcode><name>衢州市</name><center>118.87263,28.941708</center><level>city</level><districts type="list"/></district><district><citycode>0579</citycode><adcode>330700</adcode><name>金华市</name><center>119.649506,29.089524</center><level>city</level><districts type="list"/></district></districts></district></districts></response>