业务上常常需要获知给定经纬的具体信息,如该点位于哪个省、哪个城市、哪个区。百度给开发者提供了百度地图api,可以让我们轻易获取经纬度的省市区等信息。
若想通过一个给定的经纬度,获取其省市区等信息,只需两步:
- 1、申请百度ak
点击链接:tp://lbsyun.baidu.com/index.php?title=jspopular/guide/introduction,即可申请。具体申请方法不做赘述,网上教程很多。
- 2、使用百度ak
使用方法也很简单,只需使用requests包,调用百度api,指定ak即可:
import requests
items = {'location': '31,117', 'ak': '你所申请的ak', 'output': 'json'}
res = requests.get('http://api.map.baidu.com/geocoder/v2/', params=items)
res.json()
运行结果如下图:
可以看到,从百度api获取的位置信息还是很丰富的,我们可以从这个json格式的结果中,提取我们想要的各种信息。
如果你觉得上面的步骤太麻烦,不想去自己申请百度ak,也不想自己写请求去调用百度api,那么还有一个更简单的方法:
我把上面的步骤封装成了一个包,你可以点击下面的连接下载:
https://download.csdn.net/download/oyezhou/10623838
使用方法很简单:
- 1、将该包放在你的python环境目录或者当前脚本目录下
- 2、导入该包
from baidumapapi.locatebylatlng import location
- 3、指定经纬度
loc = location(117,31)
指定经纬度时,同样也支持使用你自己申请的ak:
loc = location(117,31, ak='xxxxxxxxxxxxx')
- 4、提取结果
print(loc.country(),loc.province(),loc.city(),loc.district())
# 输出结果:
# 中国 安徽省 安庆市 桐城市