<?php
include("seguranca.php");
include_once("../classes/motoristas.php");
include_once("../classes/cidades.php");
include_once("../bd/config.php"); 
$e = new motoristas();
$c = new cidades();
$dados_cidade = $c->get_dados_cidade($cidade_id);
$entregadores =  array();
$entregadores = $e->get_motoristas($cidade_id);
//var_dump($entregadores);
if (!empty($entregadores)) {
    if ($entregadores[0]['lat'] == 0 || $entregadores[0]['lng'] == 0) {
        $lat_ini = $dados_cidade['latitude'];
        $lng_ini = $dados_cidade['longitude'];
    } else {
        $lat_ini = $entregadores[0]['lat'];
        $lng_ini = $entregadores[0]['lng'];
    }
} else {
    $lat_ini = $dados_cidade['latitude'];
    $lng_ini = $dados_cidade['longitude'];
}
//busca todos os entregadores

?>
<!DOCTYPE html>
<html>
<?php include "head.php"; ?>
<?php include("menu.php"); ?>
<style>
    #map {
        height: 100%;
    }

    /* Optional: Makes the sample page fill the window. */
    html,
    body {
        height: 100%;
        margin: 0;
        padding: 0;
    }
</style>

<body>
    <div id="map" style="width: 100%; height: 88%"></div>
</body>

</html>
<?php include("dep_query.php"); ?>
<script src="https://code.jquery.com/jquery-3.6.4.js" integrity="sha256-a9jBBRygX1Bh5lt8GZjXDzyOB+bWve9EiO7tROUtj/E=" crossorigin="anonymous"></script>
<script>
    let entregadores = <?php echo json_encode($entregadores); ?>;
    let url = '<?php echo DOMINIO; ?>';
    let url_base = url + "/_/assets/img/";
    let lat_ini = <?php echo $lat_ini; ?>;
    let lng_ini = <?php echo $lng_ini; ?>;
    var map;
    var markers = [];

    function initMap() {
        map = new google.maps.Map(document.getElementById("map"), {
            center: {
                lat: lat_ini,
                lng: lng_ini
            },
            zoom: 13.5,
        });
        listar_entregadores(entregadores);
    }

    function listar_entregadores(entregadores) {
        entregadores.forEach(function(entregador) {
            if (entregador.lat == 0 || entregador.lng == 0) return;
            //convert to number
            entregador.lat = parseFloat(entregador.latitude) || 0;
            entregador.lng = parseFloat(entregador.longitude) || 0;
            console.log(entregador);

            var myLatLng = {
                lat: entregador.lat,
                lng: entregador.lng
            };
            var iconUrl = entregador.online == 1 ? "ent_on.png" : "ent_off.png";
            var marker = new google.maps.Marker({


                position: myLatLng,
                map: map,
                title: entregador.nome,
                icon: {
                    url: url_base + iconUrl,
                    scaledSize: new google.maps.Size(40, 40),
                    origin: new google.maps.Point(0, 0),
                    anchor: new google.maps.Point(20, 40),
                },
            });
            markers.push(marker);
            //quando clica no marcador exibe o nome do entregador
            marker.addListener("click", () => {
                var infowindow = new google.maps.InfoWindow({
                    content: entregador.nome,
                });
                infowindow.open(map, marker);
            });
        });
    }

    function excluir_marcadores() {
        for (var i = 0; i < markers.length; i++) {
            markers[i].setMap(null);
        }
    }

    setInterval(function() {
        $.ajax({
            url: url + "/_/funcoes/get_entregadores.php",
            type: "POST",
            data: {
                cidade_id: <?php echo $cidade_id; ?>
            },
            dataType: "json",
            success: function(data) {
                entregadores = data;
                excluir_marcadores();
                listar_entregadores(entregadores);
            },
            error: function(data) {
                console.log(data);
            },
        });
    }, 10000);
</script>
<script src="https://maps.googleapis.com/maps/api/js?key=<?php echo KEY_GOOGLE_MAPS; ?>&callback=initMap"></script>
