Python爬虫(13)——根据地址获取经纬度并进行Geohash编码

本文主要介绍一下通过高德地图API接口,将指定的标准化地址转换成对应的经纬度,并进行Geohash编码。

首先,在高德开放平台(https://lbs.amap.com/api/webservice/guide/api/georegeo)申请key

然后,可以根据(https://lbs.amap.com/api/webservice/guide/api/georegeo)里的格式调用高德地图API接口,获取地址对应的经纬度。

具体实现代码如下所示:

import requests
import json


def _get_request(_url):
    s.headers = {"Conetent-Type":"application/json;charset=UTF-8"}
    response  = json.loads(requests.get(_url).text)
    data = response["geocodes"][0]
    addr = data["formatted_address"]
    city = data["city"]
    location = data["location"]
    level = data["level"]
    return [addr,city,location,level]

host = 'restapi.amap.com'
addr = '北京市昌平区科技园区昌盛路18号B1座1-5层'
addr_key = '*******'   #申请的key
s = requests.session()
_url = 'https://{}:443/v3/geocode/geo?address={}&output=JSON&key={}'.format(host,addr,addr_key)
print(_get_request(_url))

输出结果如下所示:

最后,对返回的经纬度进行Geohash编码(https://github.com/vinsci/geohash),如下所示:

import geohash

data = geohash.encode(116.255421,40.201209,precision=7)

print(data)

输出结果如下所示:

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值