在python中使用geopy的百度API解析经纬度

您所在的位置:网站首页 如何用百度地图查坐标和经纬度 在python中使用geopy的百度API解析经纬度

在python中使用geopy的百度API解析经纬度

2024-07-08 02:29| 来源: 网络整理| 查看: 265

需求

将经纬度解析为地址,使用geopy默认提供的东西解析单个经纬度够用了,但是成批的解析会经常超时。查阅资料发现可以在geopy中使用百度的api。超时的问题就容易解决了。

百度api

webapi/guide/webservice-geocoding-abroad - Wiki点击链接到百度的全球逆地理编码服务,在服务文档中可以查看到详细的接口信息。按步骤很容易创建自己的服务接口。http://lbsyun.baidu.com/apiconsole/key 在这个链接中创建服务。默认全部勾选就不管了。重要的是应用AK和请求校验方式改为sn校验方式得到的SK 在这里插入图片描述

geopy 参考时经常出现的用法 from geopy.geocoders import Nominatim geolocator=Nominatim() location= geolocator.reverse("39.8694900405,116.0013866959") print(location.address) # 京昆路, 房山区, 中国 print(location.raw['address']['country']) # 中国 print(location.raw) # {'place_id': '187024808', #'licence': 'Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright', #'osm_type': 'way', 'osm_id': '537178945', 'lat': '39.8730714477888', 'lon': '116.000163834226', #'display_name': '京昆路, 房山区, 中国', # 'address': {'road': '京昆路', 'county': '房山区', 'country': '中国', 'country_code': 'cn'}, # 'boundingbox': ['39.8639144', '39.8769233', '115.9720381', '116.015403']}

Welcome to GeoPy’s documentation! — GeoPy 1.17.0 documentation链接给出了geopy的官方地址,遇到问题还可以去github上找一找看看源码。 不管是地址到经纬度还是经纬度到地址,最后都和代码中的location相关。我们重点关注location.raw,可以把location.raw的内容放到json可视化工具查看。想要用的时候location.raw[‘key’]轻松解决。 在这里插入图片描述

百度API的用法 from geopy.geocoders import Baidu geocoder = Baidu( api_key='ak',#自己修改 security_key='sk',#自己修改 timeout=200 ) lr=[] ilb=[('a',39.8694900405,116.0013866959),('b',39.8694900405,116.0013866959)] for _,i in enumerate(ilb): location= geocoder.reverse(i[1]+','+i[2]) lr.append((i[0],location.raw)) for _,i in enumerate(lr): addr=i[1]['addressComponent'] addr['country'] print(addr) # print(i) if _>1: break

如果容易超时建议把timeout调高



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3