1:百度API密钥申请
打开http://lbs.baidu.com/
注册成为百度开发者,通过邮件验证。打开http://lbs.baidu.com/apiconsole/key#/home 应用管理–创建应用–应用类型为服务端时 Ip填写0.0.0.0/0;应用类型为浏览器端时,IP填*. 这里我们需要创建浏览器端的应用,创建成功即可得到ak码。
2;依据经纬度信息查询地址信息
import json
import requests
from urllib.request import urlopen, quote
ak = 'ak'
address = '郑州市郑州大学'
url= 'http://api.map.baidu.com/geocoder?output=json&key=f247cdb592eb43ebac6ccd27f796e2d2&address='+str(address)
response = requests.get(url)
answer = response.json()
lon = float(answer['result']['location']['lng'])
lat = float(answer['result']['location']['lat'])
print(address,lat,lon)
print('**********************************************')
print(' ')
ur=r'http://api.map.baidu.com/reverse_geocoding/v3/?ak='+ak+'&output=json&coordtype=wgs84ll&location=31.225696,121.49884'
params = {'location': str(lat) + ',' + str(lon), 'output': 'json'}
res = requests.get(ur, params=params)
result = res.json()
print(result)
print('--------------------------------------------')
#result = result['result']['formatted_address'] + ',' + result['result']['sematic_description']
result = result['result']['addressComponent']['city']
首先根据地址查询经纬度,再根据经纬度反查地址,以郑州大学为例(为了精确的获取经纬度,避免同名,最好加上省市等信息)
可以看到依据经纬度反查地址基本可信。