计算两个经纬度的距离_Python:如何用一行代码,计算地图上两个地点的距离

本文介绍了使用Python的Geopy包来计算地图上两个地点的geodesic和great-circle距离。通过实例展示了如何计算上海和北京之间的距离,并在dataframe中应用此方法。虽然geodesic方法计算稍微慢些,但更精确,通常被优先选择。
摘要由CSDN通过智能技术生成
7cb9601361b30ab10c9a0112cc2bd00f.png

工具:

使用Python Geopy包。

Geopy包下有两种计算方式:geodesic 距离和 great-circle 距离。默认使用geodesic 距离。

两者区别:

geodesic 距离:将地球看成一个扁的椭圆球。具体计算方法,请自行搜索vincenty公式

great-circle 距离:将地球看成一个规整的椭圆球

参考: https://pypi.org/project/geopy/

代码实例:获取上海和北京两个地理坐标的距离

方法1.

用geodesic方法计算上海和北京市的距离。

核心代码只有最后一行。单位使用公里 (km).

36159b0fd63d40b99adab449a287a97e.png

计算结果:

1962d3e0a426228d84f88616fc06915f.png

方法2.

用great-circle方法计算上海和北京市的距离。

核心代码只有最后一行。

d72b57f125987189ed764b9213458818.png

计算结果:

373aa8abf2fed1c98c01aafcdd8fc1b0.png

两种方法对比:

可以看出,两种计算方法在距离很近的时候,相差不大。

虽然geodesic方法略慢,但相对精确。一般都使用geodesic方法。

代码实例2:dataframe中的计算

计算dataframe每个行的坐标,跟coord1也就是上海市的距离。

核心代码只有一行。

5f14765e876c5902498c95086894f6a0.png

计算结果:

1a7a9844e9ca536a6e3d1fd1bc717893.png

如果读者有兴趣,会再写一篇《Python:如何用一行代码获取某个地点(比如"上海市博物馆")的具体坐标值和详细地址》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值