pip install haversine
from haversine import haversine
lyon = (45.7597, 4.8422)
paris = (48.8567, 2.3508)
haversine(lyon, paris)
#392.2172595594006 默认是公里
haversine(lyon, paris, unit=Unit.MILES)
#单位设置为英里
#243.71250609539814
haversine(lyon, paris, unit='mi')
#243.71250609539814
from haversine import Unit
tuple(Unit)
'''
(,
,
,
,
,
,
,
)
'''
从给定的向量(距离和方向)和起点计算点。
目前明确支持(北,东,南,西)和(东北,东南,西南,西北)方向。但也允许以弧度表示的角度。
from haversine import inverse_haversine, Direction
from math import pi
paris = (48.8567, 2.3508) # (lat, lon)
inverse_haversine(paris, 32, Direction.WEST)
#(48.85587279023947, 1.9134085092836945)
inverse_haversine(paris, 50, Direction.NORTH, unit=Unit.MILES)
#(49.58035791599536, 2.3508
inverse_haversine(paris, 32, pi * 1.25)
#(48.65279552300661, 2.0427666779658806)
from haversine import haversine_vector, Unit
lyon = (45.7597, 4.8422) # (lat, lon)
paris = (48.8567, 2.3508)
new_york = (40.7033962, -74.2351462)
haversine_vector([lyon, lyon,lyon], [paris, new_york,lyon], Unit.KILOMETERS)
#array([ 392.21725956, 6163.43638211, 0. ])
#分别是 lyon-paris,lyon-new_york,lyon-lyon的距离
from haversine import haversine_vector, Unit
lyon = (45.7597, 4.8422) # (lat, lon)
london = (51.509865, -0.118092)
paris = (48.8567, 2.3508)
new_york = (40.7033962, -74.2351462)
haversine_vector([lyon, london], [paris, new_york], Unit.KILOMETERS, comb=True)
'''
array([[ 392.21725956, 343.37455271],
[6163.43638211, 5586.48447423]])
'''