地理编码:
将详细的结构化地址转换为高德经纬度坐标。且支持对地标性名胜景区、建筑物名称解析为高德经纬度坐标。
使用步骤:
第一步,申请Web服务API类型Key;
第二步,参考接口参数文档发起HTTP/HTTPS请求,第一步申请的 Key 需作为必填参数一同发送;
第三步,接收请求返回的数据(JSON或XML格式),参考返回参数文档解析数据。
地理编码 API 服务地址
URL | https://restapi.amap.com/v3/geocode/geo?parameters |
---|---|
请求方式 | GET |
服务示例
https://restapi.amap.com/v3/geocode/geo?address=北京市朝阳区阜通东大街6号&output=XML&key=<用户的key>
根据官网提供的资料可以看出有两个必填的参数,为key和address,key即为第一步申请得到的字符串,address为具体待查询的地址,为了避免出现多地同名的情况可以填入city。明白了输入参数,下面我们来看看返回的结果。
地理编码API返回的结果默认为JSON格式,返回参数主要分为结果状态值status、状态说明info、地理编码信息表geocodes三类。结果状态值和状态说明反映的是请求结果,主要数据都在地理编码信息表中。
下面我们测试一下:
示例代码:
import requests
address = '内蒙古自治区阿左旗嘉尔嘎勒赛汉镇巴兴图'
AK='22fcd3093365e8c****edaa86fb8b66e30b' # KEY
base = r'https://restapi.amap.com/v3/geocode/geo'
url = 'https://restapi.amap.com/v3/geocode/geo?address={0}&output=JSON&key={1}'.format(address, AK)
res= requests.get(url)
print(res.json())
print(res.status_code)
if res.status_code == 200:
val = res.json()
print(val['status'])
if val['status'] == '1':
location = val['geocodes'][0]['location']
print(location)
打印结果
{'status': '1', 'info': 'OK', 'infocode': '10000', 'count': '1', 'geocodes': [{'formatted_address': '内蒙古自治区巴彦淖尔市乌拉特中旗巴兴图', 'country': '中国', 'province': '内蒙古自治区', 'citycode': '0478', 'city': '巴彦淖尔市', 'district': '乌拉特中旗', 'township': [], 'neighborhood': {'name': [], 'type': []}, 'building': {'name': [], 'type': []}, 'adcode': '150824', 'street': [], 'number': [], 'location': '108.841252,41.999346', 'level': '村庄'}]}
200
1
108.841252,41.999346
根据打印结果可以发现返回的地理编码信息表geocodes是一个列表类型,因此需要根据索引取出该列表中所包含的信息表。