Buscar en la base de conocimientos
< Todos los temas
Imprimir

Calcular la distancia en kilómetros entre dos puntos geográficos

<?php

/**
 * Calcula la distancia en kilómetros entre dos puntos geográficos
 *
 * @param float $lat1 Latitud del primer punto
 * @param float $lon1 Longitud del primer punto
 * @param float $lat2 Latitud del segundo punto
 * @param float $lon2 Longitud del segundo punto
 * @return float Distancia en kilómetros
 */
function calcularDistanciaHaversine($lat1, $lon1, $lat2, $lon2) {
    // Radio de la Tierra en kilómetros
    $radioTierra = 6371;

    // Convierte las coordenadas de grados a radianes
    $latitud1 = deg2rad($lat1);
    $longitud1 = deg2rad($lon1);
    $latitud2 = deg2rad($lat2);
    $longitud2 = deg2rad($lon2);

    // Diferencias de latitud y longitud
    $dLatitud = $latitud2 - $latitud1;
    $dLongitud = $longitud2 - $longitud1;

    // Fórmula de Haversine
    $a = sin($dLatitud / 2) * sin($dLatitud / 2) + cos($latitud1) * cos($latitud2) * sin($dLongitud / 2) * sin($dLongitud / 2);
    $c = 2 * atan2(sqrt($a), sqrt(1 - $a));

    // Distancia en kilómetros
    $distancia = $radioTierra * $c;

    return $distancia;
}

// Ejemplo de uso
$distancia = calcularDistanciaHaversine(37.7749, -122.4194, 34.0522, -118.2437);
echo "La distancia entre San Francisco y Los Ángeles es: " . $distancia . " km";

?>

Esta función utiliza la fórmula de Haversine para calcular la distancia entre dos puntos geográficos dados sus valores de latitud y longitud. Ten en cuenta que esta es solo una función de ejemplo y que en un entorno de producción, deberías considerar aspectos como la validación de los datos de entrada y la gestión de errores.

Recuerda adaptar y probar la función según tus necesidades específicas antes de utilizarla en un entorno de producción.

Parámetros de entrada:

  • La función toma cuatro parámetros:
    • $lat1 y $lon1: Latitud y longitud del primer punto.
    • $lat2 y $lon2: Latitud y longitud del segundo punto.

Radio de la Tierra:

  • Establecemos el radio de la Tierra en kilómetros, que se utiliza en la fórmula de Haversine. En este caso, se asume un radio de 6371 kilómetros.

Conversión de coordenadas a radianes:

  • Convertimos las coordenadas de grados a radianes, ya que la fórmula de Haversine utiliza medidas en radianes.

Diferencias de latitud y longitud:

  • Calculamos las diferencias entre las latitudes y longitudes de los dos puntos.

Fórmula de Haversine:

  • Aplicamos la fórmula de Haversine, que es una fórmula trigonométrica utilizada para calcular la distancia entre dos puntos en una esfera.

Esta función es especialmente útil en aplicaciones que necesitan calcular distancias geográficas, como en sistemas de mapas o servicios de ubicación. Es importante tener en cuenta que esta es solo una implementación básica, y en un entorno de producción, podrías necesitar agregar más validaciones y manejo de errores.

Sidebar