【python实战】 批量获取经纬度-高德地图API
2020-03-29 本文已影响0人
Hobbit的理查德
1. 需求
有时候,手上有一堆文本地址,想用这些地址来定位、进行路径规划或者画热力图,这时候往往需要这些文本地址的经纬度来进行下一步操作。
而获取经纬度信息,可以通过高德地图API的地理/逆地理编码获取。
2. 过程
1.注册高德账号申请Key
先在控制台,创建新应用,应用名称和类型自定义。
创建应用.png创建应用后,点击+
,添加Key。
其中,Key名称自定义,选择Web服务,然后提交。 填写key信息.png
然后,就可以获得Key了(打马赛克处):
key.png查看配额,可以发现,实名注册(支付宝登录)后,地理编码/逆地理编码的每日的调用量为30万次,个人使用够够的了。
配额.png2. 构造返回经纬度的函数
至此,有了key,就可以根据文档中的API服务地址和请求参数,构造函数,返回经纬度了。
这是API服务地址及请求参数:
地理编码请求参数.png这是返回参数说明:
返回参数.png高德地图API,比较好的一点就是,还有运行实例:
服务示例.png#导入第三方库
import requests,json
#构造函数
def gain_location(adress):
api_url=f'https://restapi.amap.com/v3/geocode/geo?city=北京市&address={adress}&key=自己的key&output=json&callback=showLocation'
r = requests.get(api_url)
r = r.text
r = r.strip('showLocation(')#高德
r = r.strip(')')
jsonData = json.loads(r)['geocodes'][0]['location'] # 将json字符串转换为字典类型转为字典格式类型
return jsonData
#自定义地址内容
address=['新中关购物中心','五道口购物中心','天作国际大厦','朱辛庄地铁站','朝阳建外soho','海淀文教产业园']
for a in address:
location=gain_location(a)
print(a,location) #打印地址及其经纬度
3.效果
运行代码后,就可以批量获得每个地址的经纬度啦~
经纬度效果.png