我有以下 df 列:
lati_origin longi_oringin lati_final longi_final
-19.864315 -44.047180 -3.026643 -59.955860
我使用了跟隨功能,但不回傳以公里為單位的谷歌地圖的相同距離。
def haversine_np(lon1, lat1, lon2, lat2):
"""
Calculate the great circle distance between two points
on the earth (specified in decimal degrees)
All args must be of equal length.
"""
lon1, lat1, lon2, lat2 = map(np.radians, [lon1, lat1, lon2, lat2])
dlon = lon2 - lon1
dlat = lat2 - lat1
a = np.sin(dlat/2.0)**2 np.cos(lat1) * np.cos(lat2) * np.sin(dlon/2.0)**2
c = 2 * np.arcsin(np.sqrt(a))
km = 6371 * c
return km
有人可以幫我計算類似于 Google 地圖與我的 df 的距離嗎?
uj5u.com熱心網友回復:
你可以用它geopy來查找距離
import geopy.distance
def calculte_distance(lon1, lat1, lon2, lat2):
coords_1 = (lat1, lon1)
coords_2 = (lat2, lon2)
return geopy.distance.geodesic(coords_1, coords_2).km
安裝
pip install geopy
執行:
In [1]: calculte_distance(-44.047180,-19.864315,-59.955860,-3.026643)
Out[1]: 2541.261913716022
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/514736.html
標籤:Python谷歌地图
