赞
踩
本文解释了:如何用一行代码,把“上海市”变成地图上的GPS坐标: (31.2252985, 121.4890497)
百度搜索。
一行Python代码搞定:
完整的、分步骤的详细代码解释,在本文末。
上面的一行代码,是针对dataframe数据批量操作的。
下面,为了解释的更加清楚,看一个更简单的例子:针对"上海市"的单一查询。
GPS坐标的查询,本例子中使用了Python GeoPy包的Geocodor功能。
Geocodor,既可以获取地址的地理GPS坐标,也可以根据GPS坐标倒推出地址。
1. 首先导入GeoPy 包Geocodor功能:
注意这里的Nominatim代表了使用的是openstreet的数据。
除了Nominatim,还有其他选择比如Google地图。但是Google地图关闭了开放的API后,使用openstreet更加方便。
2. 建立Geocodor:
使用user-agent可以避免openstreet服务器返回错误值。
3. 查询"上海市":
geolocator.geocode("上海市")会返回一个geopy.location.Location对象,包含了place_ id、osm_type等多项信息。当然其中也包含我们要查询的地理坐标值:lat、lon。
location.raw可以查看其包含具体信息:
4. 调取location对象中包含的GPS坐标值:
以上四步骤的完整代码,并附加解释:
如何在dataframe中做批量处理,见上文的"王者"做法中的那一行代码。
如何计算地图上两个地点的距离,看我之前写的《Python:如何用一行代码,计算地图上两个地点的距离》:https://www.toutiao.com/item/6859325590843949581/
更多内容,可参考:https://pypi.org/project/geopy/
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。