python调用高德地图实现根据地名获取经纬度
前提条件:
需要申请一个web服务类型的key(xxxxxxxxx为申请的key)
import requests
import pypinyin
import json
'''
获取地址坐标
'''
def pinyin(word):
s = ''
for i in pypinyin.pinyin(word, style=pypinyin.NORMAL):
s += ''.join(i)
return s
def get_city_location(name):
url = "https://restapi.amap.com/v3/geocode/geo?address={}&output=json&key=xxxxxxxxxxxxxxxx".format(name)
# print(url)
res_text = requests.get(url).text
# print(res_text)
# print(json.loads(res_text).get('status'))
# print(json.loads(res_text).get('geocodes')[0].get('city'))
# print(json.loads(res_text).get('geocodes')[0].get('location'))
# print(json.loads(res_text).get('geocodes')[0].get('location').split(',')[0])
# print(json.loads(res_text).get('geocodes')[0].get('location').split(',')[1])
retval = json.loads(res_text).get('status')
city_list = []
if retval == '1':
city_name = json.loads(res_text).get('geocodes')[0].get('city')
longitude = json.loads(res_text).get('geocodes')[0].get('location').split(',')[0]
latitude = json.loads(res_text).get('geocodes')[0].get('location').split(',')[1]
tmpl = {
"key": pinyin(city_name),
"latitude": float(latitude),
"longitude": float(longitude),
"name": city_name
}
city_list.append(tmpl)
return json.dumps(city_list, ensure_ascii=False)
return None
print(get_city_location("苏州"))
输出结果:
[{"key": "suzhoushi", "latitude": 31.298886, "longitude": 120.585315, "name": "苏州市"}]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!