<?php
require_once('../../../includes/load.php');

// Obtiene las coordenadas de las ubicaciones seleccionadas
$ubicacion1 = $_POST['ubicacion1'];
$ubicacion2 = $_POST['ubicacion2'];

$query = "SELECT latitud, longitud FROM tb_ubicaciones WHERE UBI_LLEGADA IN ('$ubicacion1', '$ubicacion2')";
$result = $db->query($query);

if ($result->num_rows == 2) {
    $coordenadas = [];
    while ($row = $result->fetch_assoc()) {
        $coordenadas[] = [
            'latitud' => $row['latitud'],
            'longitud' => $row['longitud']
        ];
    }

    // Convierte las coordenadas de cadenas a números
    $latitud1 = floatval($coordenadas[0]['latitud']);
    $longitud1 = floatval($coordenadas[0]['longitud']);
    $latitud2 = floatval($coordenadas[1]['latitud']);
    $longitud2 = floatval($coordenadas[1]['longitud']);

    // Calcula la distancia utilizando la fórmula del haversine
    $distancia = haversineDistance($latitud1, $longitud1, $latitud2, $longitud2);
    // Formatear la distancia con dos decimales y punto como separador decimal
    $distanciaFormateada = number_format($distancia, 2, '.', '');

    // Reemplazar las comas por puntos
    $distanciaFormateada = str_replace(',', '.', $distanciaFormateada);

    echo $distanciaFormateada; // Esto mostrará "8121.12"
} else {
    echo '0';
}

function haversineDistance($lat1, $lon1, $lat2, $lon2) {
    $lat1 = deg2rad($lat1);
    $lon1 = deg2rad($lon1);
    $lat2 = deg2rad($lat2);
    $lon2 = deg2rad($lon2);

    $dlat = $lat2 - $lat1;
    $dlon = $lon2 - $lon1;

    $a = sin($dlat / 2) ** 2 + cos($lat1) * cos($lat2) * sin($dlon / 2) ** 2;
    $c = 2 * atan2(sqrt($a), sqrt(1 - $a));

    // Radio de la Tierra en kilómetros
    $radioTierra = 6371;

    return $radioTierra * $c;
}
?>