Python使⽤百度地图API根据地名获取相应经纬度
今天有个需求,要根据地名获取经纬度坐标值。
于是我第⼀想法:打开百度地图,⼿动输⼊地名,获取。显然当地名较少时,可实施。然⽽,当地名较多时,此⽅法显然⼯作量很⼤。
于是,第⼆想法:代码获取,请求百度地图api接⼝。
然后去申请了⼀个AK,登录⾃⼰的百度账号去申请即可。(下⽂代码中会⽤到,到时替换成⾃⼰申请的AK即可)
上代码:
import requests
def geocodeB(address):
百度api接口"""
@ address: 名称字符串
@ 返回值:经度,纬度
"""
base_url = "api.map.baidu/geocoder?address={address}&output=json&key=AK直接粘贴在这⾥".format(address=address)
response = (base_url)
answer = response.json()
latitude = answer['result']['location']['lng']
longitude = answer['result']['location']['lat']
return latitude, longitude
print(geocodeB('泰安市'))  # (117.094495, 36.205858)
现在有多个地名,我不可能每次去百度地图⼿动输⼊地名,再获取经纬度坐标值。于是,现在⽤上⾯的function:geocodeB,这个问题就解决了:
geolist = ['泰安市肥城市', '泰安市肥城市新城街道', '泰安市肥城市⽼城街道办事处', '泰安市肥城市王⽠店街道办事处', '泰安市肥城市仪阳街道', '泰安市肥城市潮泉镇', '泰安市肥城市桃园镇',
'泰安市肥城市王庄镇', '泰安市肥城市湖屯镇', '泰安市肥城市⽯横镇', '泰安市肥城市安临站镇', '泰安市肥城市孙伯镇', '泰安市肥城市安驾庄镇', '泰安市肥城市汶阳镇', '泰安市肥城市边院镇',
'泰安市新泰市', '泰安市新泰市青云街道', '泰安市新泰市新汶街道', '泰安市新泰市新甫街道', '泰安市新泰市东都镇', '泰安市新泰市⼩协镇', '泰安市新泰市翟镇', '泰安市新泰市泉沟镇',
'泰安市新泰市⽺流镇', '泰安市新泰市果都镇', '泰安市新泰市西张庄镇', '泰安市新泰市天宝镇', '泰安市新泰市楼德镇', '泰安市新泰市禹村镇', '泰安市新泰市宫⾥镇', '泰安市新泰市⾕⾥镇',
'泰安市新泰市⽯莱镇', '泰安市新泰市放城镇', '泰安市新泰市刘杜镇', '泰安市新泰市汶南镇', '泰安市新泰市龙廷镇', '泰安市新泰市岳家庄乡', '泰安市东平县', '泰安市东平县东平街道办事处',
'泰安市东平县州城街道办事处', '泰安市东平县彭集街道办事处', '泰安市东平县沙河站镇', '泰安市东平县⽼湖镇', '泰安市东平县银⼭镇', '泰安市东平县斑鸠店镇', '泰安市东平县接⼭镇',
'泰安市东平县⼤⽺镇', '泰安市东平县梯门镇', '泰安市东平县新湖镇', '泰安市东平县戴庙镇', '泰安市东平县商⽼庄乡', '泰安市东平县旧县乡']
store_geo_list = []
dictvar = dict()
for geo in geolist:
store_geo__dict = {}
listvar = list(geocodeB(geo))
store_geo__dict['经度'] = listvar[0]
store_geo__dict['纬度'] = listvar[1]
dictvar[geo] = store_geo__dict
print(dictvar)
输出结果:
{'泰安市肥城市': {'经度': 116.775401, '纬度': 36.188811}, '泰安市肥城市新城街道': {'经度': 116.773336, '
纬度': 36.187907}, '泰安市肥城市⽼城街道办事处': {'经度': 116.790305, '纬度': 36.271545}, '泰安市肥城市王⽠店街道办事处': {'经度': 116.704445, '纬

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。