python学习笔记Python

【python实战】 批量获取经纬度-高德地图API

2020-03-29  本文已影响0人  Hobbit的理查德

1. 需求

有时候,手上有一堆文本地址,想用这些地址来定位、进行路径规划或者画热力图,这时候往往需要这些文本地址的经纬度来进行下一步操作。

而获取经纬度信息,可以通过高德地图API的地理/逆地理编码获取。

2. 过程

1.注册高德账号申请Key

先在控制台,创建新应用,应用名称和类型自定义。

创建应用.png

创建应用后,点击+,添加Key。

添加key.png
其中,Key名称自定义,选择Web服务,然后提交 填写key信息.png

然后,就可以获得Key了(打马赛克处):

key.png

查看配额,可以发现,实名注册(支付宝登录)后,地理编码/逆地理编码的每日的调用量为30万次,个人使用够够的了。

配额.png

2. 构造返回经纬度的函数

至此,有了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
上一篇下一篇

猜你喜欢

热点阅读