python之调用高德、百度api解析经纬度地址
调用高德
# 高德地图根据经纬度反查地址,每天只能调用5000次
def gaode_excute_single_query(coordStrings ,currentkey='你自己的api-key'):
# 1-将coordList中的经纬度坐标连接成高德地图API能够识别的样子
# coordString+= f"{long},{lat}|"
# 2-地理编码查询需要的Url
output = 'json' # 查询返回的形式
batch = 'true' # 是否支持多个查询
base = 'https://restapi.amap.com/v3/geocode/regeo?' # 逆地理编码查询Url的头
currentUrl = base + "output=" + output + "&batch=" + batch + "&location=" + coordStrings+ "&key=" + currentkey
# 3-提交请求
response = requests.get(currentUrl) # 提交请求
answer = response.json() # 接收返回
# 4-解析Json的内容
resultList = [] # 用来存放逆地理编码结果的空序列
if answer['status'] == '1' and answer['info'] == 'OK':
# 4.1-请求和返回都成功,则进行解析
tmpList = answer['regeocodes'] # 获取所有结果坐标点
for i in range(0,len(tmpList)):
try:
# 解析','分隔的经纬度
addressString = tmpList[i]['formatted_address']
# 放入结果序列
resp_dict=dict()
resp_dict[coordStrings]=addressString
resultList.append(resp_dict)
except:
# 如果发生错误则存入None
traceback.print_exc()
resultList.append(None)
return resultList
elif answer['info'] == 'DAILY_QUERY_OVER_LIMIT':
# 4.2-当前账号的余额用完了,返回-1
return -1
else:
# 4.3-如果发生其他错误则返回-2
return -2
调用百度
# 百度地图根据经纬度反查地址,每天只能调用5000次
def baidu_excute_single_query(coordStrings,ak='你自己的api-key'):
# coordStrings:格式 纬度,经度 f'{lat},{long}'
url=f'https://api.map.baidu.com/reverse_geocoding/v3/?ak={ak}&output=json&coordtype=wgs84ll&location={coordStrings}&'
resp=requests.get(url=url,params=None).json()
# print(resp)
if resp.get('result') :
res_dict=dict()
res_dict[coordStrings]=resp['result']['formatted_address']
return res_dict
return f"{coordStrings},解析失败"
脑子不够用当然只能脚踏实地的做事情!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
2019-12-22 python-自动登录禅道