<?php
// Parámetros de entrada
$imei = $_GET['imei'];
//$fechaHora = $_GET['fecha_hora'];
//echo $fechaHora;
$fechaHora = '2024-06-21 16:27:00';
// Verificar si la ejecución está dentro del límite de 24 horas
$fechaEntrada = strtotime($fechaHora);
$fechaLimite = strtotime('+24 hours', $fechaEntrada);
if (time() > $fechaLimite) {
    die('La ejecución ha excedido el límite de 24 horas.');
}

// Conexión a la base de datos
$servername = '10.118.144.75';
$username = 'web';
$password = 'mYREbJG0E1lW';
$dbname = 'gpsimple';

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    die('Error al conectar a la base de datos: ' . $conn->connect_error);
}

// Obtener la posición del punto desde la base de datos
$sql = "SELECT lat, lng FROM gs_objects WHERE imei = '$imei'";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    $row = $result->fetch_assoc();
    $latitud = $row['lat'];
    $longitud = $row['lng'];

    // Mostrar el punto en el mapa utilizando OpenStreetMap
    echo '<style>
            html, body, #map {
                height: 100%;
                margin: 0;
                padding: 0;
            }
          </style>';
    echo '<div id="map"></div>';
    echo '<script src="https://cdnjs.cloudflare.com/ajax/libs/openlayers/2.13.1/OpenLayers.js"></script>';
    echo '<script>';
    echo 'var map = new OpenLayers.Map("map");';
    echo 'var mapnik = new OpenLayers.Layer.OSM();';
    echo 'map.addLayer(mapnik);';
    echo 'var lonLat = new OpenLayers.LonLat(' . $longitud . ', ' . $latitud . ').transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject());';
    echo 'var markers = new OpenLayers.Layer.Markers("Markers");';
    echo 'map.addLayer(markers);';
    echo 'var marker = new OpenLayers.Marker(lonLat);';
    echo 'markers.addMarker(marker);';
    echo 'map.setCenter(lonLat, 12);';
    echo 'window.addEventListener("resize", function() {';
    echo '    map.updateSize();';
    echo '    map.setCenter(lonLat);';
    echo '});';
    echo '</script>';

    // Actualizar automáticamente la posición del punto cada 30 segundos
    echo '<script>';
    echo 'setInterval(function() {';
    echo '    fetch("follow.php?imei=' . $imei . '").then(response => response.json()).then(data => {';
    echo '        var newLonLat = new OpenLayers.LonLat(data.lng, data.lat).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject());';
    echo '        marker.moveTo(map.getLayerPxFromLonLat(newLonLat));';
    echo '        map.setCenter(newLonLat);';
    echo '    });';
    echo '}, 30000);';
    echo '</script>';
} else {
    echo 'No se encontró la posición del punto para el IMEI especificado.';
}

$conn->close();
?>
