Prefacio:
Calcula la distancia entre dos puntos de acuerdo con las coordenadas de latitud y longitud, y no puedes usar directamente la distancia euclidiana, porque la latitud y la longitud están en la superficie curva para calcular la influencia del arco. Por lo tanto, este artículo se implementa de acuerdo con el código de la fórmula de coordenadas de latitud y longitud.
Link de referencia:
https://blog.csdn.net/xiejm2333/article/details/73297004
oficial:
Código:
# -*- coding: utf-8 -*-
from math import sqrt
from math import cos
from math import sin
import math
def rad(d):
return d * math.pi / 180.0
def getDistance(lat1, lng1, lat2, lng2):
EARTH_REDIUS = 6378.137
radLat1 = rad(lat1)
radLat2 = rad(lat2)
a = radLat1 - radLat2
b = rad(lng1) - rad(lng2)
s = 2 * math.asin(math.sqrt(math.pow(sin(a/2), 2) + cos(radLat1) * cos(radLat2) * math.pow(sin(b/2), 2)))
s = s * EARTH_REDIUS
print("distance=",s)
return s
if __name__ == '__main__':
lat1=40.109081
lng1=116.61869
lat2=40.090347
lng2=116.594238
getDistance(lat1, lng1, lat2, lng2)