应用高德地图API 将地址转换为经纬度
首先进入高德开放平台 并注册
注册完成后,点击控制台。
进入控制台后,选择管理Key。
进入管理Key 的界面后,选择添加Key,并在里面选择Web 服务。来创建后面需要使用的Key。
创建好之后 会生成一个key
其中可以选择需要的功能进行使用
其中选择 地址编码功能
(正)地理编码:将详细的结构化地址转换为高德经纬度坐标。且支持对地标性名胜景区、建筑物名称解析为高德经纬度坐标。
结构化地址举例:北京市朝阳区阜通东大街6号转换后经纬度:116.480881,39.989410
地标性建筑举例:天安门转换后经纬度:116.397499,39.908722
步骤:
申请Web 服务API 类型Key。
参考接口参数文档发起HTTP/HTTPS请求,第一步申请的 Key 需作为必填参数一同发送
接收请求返回的数据(JSON或XML格式),参考返回参数文档解析数据。如无特殊声明,接口的输入参数和输出数据编码全部统一为 UTF-8 编码方式。
根据文档可知,我们需要访问的网址是https://restapi.amap.com/v3/geocode/geo?parameters
在文档里可以看到需要我们设置的参数。
通过python 的requests 包可以设置参数并进行访问。
代码示例如下
# 执行一次高德地图地理编码的查询
# 输入值:locationList -> 地址的序列,currentKey -> 当前使用的Key
# 返回值:resultList -> 查询成功,返回结果坐标的序列
# -1 -> 执行当前查询时Key的配额用完了
# -2 -> 执行当前查询出错
import requests
def ExcuteSingleQuery(locationList,currentkey):
# 1-将locationList中的地址连接成高德地图API能够识别的样子
locationString = "" # 当前locationList组成的string
for location in locationList:
locationString += location + '|'
# 2-地理编码查询需要的Url
output = 'json' # 查询返回的形式
batch = 'true' # 是否支持多个查询
base = 'https://restapi.amap.com/v3/geocode/geo?' # 地理编码查询Url的头
currentUrl = base + "output=" + output + "&batch=" + batch + "&address=" + locationString + "&key=" + currentkey
print(currentUrl)
# 3-提交请求
response = requests.get(currentUrl) # 提交请求
answer = response.json() # 接收返回
# 4-解析Json的内容
resultList = [] # 用来存放地理编码结果的空序列
if answer['status'] == '1' and answer['info'] == 'OK':
# 4.1-请求和返回都成功,则进行解析
tmpList = answer['geocodes'] # 获取所有结果坐标点
for i in range(0,len(tmpList)):
try:
# 解析','分隔的经纬度
coordString = tmpList[i]['location']
coordList = coordString.split(',')
# 放入结果序列
resultList.append((float(coordList[0]), float(coordList[1])))
except:
# 如果发生错误则存入None
resultList.append(None)
return resultList
elif answer['info'] == 'DAILY_QUERY_OVER_LIMIT':
# 4.2-当前账号的余额用完了,返回-1
return -1
else:
# 4.3-如果发生其他错误则返回-2
return -2
if __name__ == '__main__':
# 创建测试地址数据集
locationList = [
"四川省成都市崇州市崇阳街道晋康北路313号",
"四川省成都市成都高新区盛华北路107号1楼",
"四川省成都市四川省成都市金堂县赵镇迎宾大道一段8号",
"四川省成都市崇州市三江镇崇新村5组",
"四川省成都市大邑县鹤鸣乡联和村二十组",
"四川省成都市成都市蒲江县复兴乡庙峰村3组52号",
]
# 进行地理编码
lists = ExcuteSingleQuery(locationList=locationList, currentkey="你的key")
for l in lists:
print(l)
原文链接:https://blog.csdn.net/qq_41103204/article/details/105707546
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
2021-04-19 python多条件模糊查询