工具:
使用Python Geopy包。
Geopy包下有两种计算方式:geodesic 距离和 great-circle 距离。默认使用geodesic 距离。
两者区别:
geodesic 距离:将地球看成一个扁的椭圆球。具体计算方法,请自行搜索vincenty公式
great-circle 距离:将地球看成一个规整的椭圆球
参考: https://pypi.org/project/geopy/
代码实例:获取上海和北京两个地理坐标的距离
方法1.
用geodesic方法计算上海和北京市的距离。
核心代码只有最后一行。单位使用公里 (km).
计算结果:
方法2.
用great-circle方法计算上海和北京市的距离。
核心代码只有最后一行。
计算结果:
两种方法对比:
可以看出,两种计算方法在距离很近的时候,相差不大。
虽然geodesic方法略慢,但相对精确。一般都使用geodesic方法。
代码实例2:dataframe中的计算
计算dataframe每个行的坐标,跟coord1也就是上海市的距离。
核心代码只有一行。
计算结果:
如果读者有兴趣,会再写一篇《Python:如何用一行代码获取某个地点(比如"上海市博物馆")的具体坐标值和详细地址》