美文网首页python学习笔记Python
【python实战】 批量获取经纬度-高德地图API

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

作者: Hobbit的理查德 | 来源:发表于2020-03-29 19:47 被阅读0次

    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

    相关文章

      网友评论

        本文标题:【python实战】 批量获取经纬度-高德地图API

        本文链接:https://www.haomeiwen.com/subject/qxouuhtx.html