Cálculo de la distancia en PHP en función de la latitud y longitud

calcul de distance géographiqueEl cálculo de distance en función de la latitud y longitud es algo que suele provocar dolores de cabeza. Efectivamente, si la Tierra fuera plana, se podría simplemente usar el teorema de Pitágoras, según el cual en un triángulo rectángulo, el cuadrado de la hipotenusa (el lado opuesto al ángulo recto) es igual a la suma de los cuadrados de los otros dos lados (seguramente se acuerda de la fórmula a2 + b2 = c2 estudiada en la escuela). Pero obviamente la Tierra no es plana…

En el código siguiente, uso la fórmula del haversine para calcular la distancia entre 2 puntos en función de su latitud y longitud.

Ese cálculo es un poco complicado, por lo tanto no lo describiré en detalles (vea el artículo en Wikipedia para más información). Sin embargo, le daré una descripción general de mi función:

  • Usando la fórmula de haversine, se calcula la distancia en grados entre las dos coordenadas GPS
  • Después, el valor en grados se convierte en kilómetros (por defecto), millas o millas naúticas, según sus necesidades.
  • Se da la distancia con la precisión elegida (2 decimales por defecto).

Tome en cuenta que dado que la Tierra no es una esfera perfecta, la fórmula del haversine implica un pequeño margen de error.

A continuación está un ejemplo de cómo usar esta función, con coordenadas GPS de nuestra base de datos worldCities.

Para más información sobre las dificultades del cálculo de distancias, vea el artículo en inglés de Wikipedia sobre las distancias geográficas, en el cual están mencionadas otras fórmulas, algunas más precisas para distancias largas y otras para distancias cortas.

 

Leave a comment