本文主要介绍一下通过高德地图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)
输出结果如下所示: