如题,笔者业务需要需要获取某城市的经纬度信息,借助geocoder&百度地图快速实现。代码参考https://geocoder.readthedocs.io/providers/Baidu.html
1、根据城市获取经纬度
2、通过经纬度获取坐标所在城市
但是使用百度地图有个bug——这种方法无法获取境外的城市坐标
import geocoder
def getLocation(city)://根据城市获取经纬度
try:
g = geocoder.baidu(city, key='*********2a41525267771eb7bb4285')
return {'lng': g.lng, 'lat': g.lat}
except:
return {'lng': 'fail', 'lat': 'fail'}
def getCity(lng, lat)://根据经纬度获取城市信息
try:
l = [lng, lat]
g = geocoder.baidu(l, method='reverse', key='*********2a41525267771eb7bb4285')
if g.status == 'ok':
return {"address": g.address, "city": g.city}
except:
return {"address": "fail", "city": "fail"}
获取key,需要先到百度地图开放平台注册,并需要创建应用,应用创建后即可获取使用,有一定量的免费额度。我做的是一个小工具,免费额度足够使用 了,如下: