获取经纬度的代码:(ak获取方法,底部进入官方进行注册)
import requests
def geocoding(address,area):
places_ll=[]
url = 'http://api.map.baidu.com/geocoding/v3/?'
params = {
"address": address,
"city": area,
"output": 'json',
"ak": '钥匙',
}
response = requests.get(url, params=params)
answer = response.json()
if answer['status'] == 0:
tmpList = answer['result']
coordString = tmpList['location']
coordList = [coordString['lng'], coordString['lat']]
places_ll.append([address, float(coordList[0]), float(coordList[1])])
return [address, float(coordList[0]), float(coordList[1])]
else:
return -1
if __name__=="__main__":
location = geocoding("和平里五区 - 和平里","北京")
输出内容:
['和平里五区 - 和平里', 116.42840695847197, 39.9627094556211]
分别是(地点、经度、纬度)
获取周边配套:
代码:
def surrounding(location,query,tag):
places_ll = []
url = "https://api.map.baidu.com/place/v2/search?"
params = {
"query": query,
"tag":tag,
"location":f"{location[2]},{location[1]}",
"output":"json",
"radius":"1000",
"ak": '钥匙',
}
response = requests.get(url, params=params)
answer = response.json()
if answer['status'] == 0:
print(answer)
else:
return -1
if __name__=="__main__":
location = geocoding("和平里五区 - 和平里","北京")
print(location)
surrounding(location,"美食","中餐")
输出:
获取成功
如果出现报错例如为空的情况
注意你的经纬度是否反过来了,反过来就会报错(官方要求是先维度,再经度)
附上百度api的文档,方便查阅其他内容:
点击使用指南