BossBey File Manager
PHP:
8.4.18
OS:
Linux
User:
kids
Root
/
home
/
kids
/
public_html
/
app
📤 Upload
📝 New File
📁 New Folder
Close
Editing: mapa.php
<?php session_start(); //var_dump($_SESSION); require_once "connection.php"; // Define os estilos padrão como ocultos $styleAdmin = "display: none;"; $styleProf = "display: none;"; $styleResp = "display: none;"; $styleAluno = "display: none;"; if (isset($_SESSION["nivelAcesso"])) { $nivelAcesso = $_SESSION["nivelAcesso"]; // Define os estilos de acordo com o nível de acesso if ($nivelAcesso == "admin") { $styleAdmin = "display: block;"; } else if ($nivelAcesso == "prof") { $styleProf = "display: block;"; } else if ($nivelAcesso == "resp") { $styleResp = "display: block;"; } else if ($nivelAcesso == "aluno") { $styleAluno = "display: block;"; } } ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Mapa do Rio de Janeiro</title> <style> /* Estilo para o mapa */ #map { height: 1000px; width: 100%; } </style> </head> <body><?php include_once("menu/nav.php");?> <?php $sql = "SELECT *, 'aluno' AS origem FROM aluno UNION ALL SELECT *, 'professor' AS origem FROM professor UNION ALL SELECT *, 'responsavel' AS origem FROM responsavel UNION ALL SELECT *, 'usuario' AS origem FROM usuario ORDER BY nivelAcesso ASC"; $markers = array(); $professores = array(); $alunos = array(); $responsaveis = array(); $sql2 = "SELECT * FROM local"; $local = array(); if ($result2 = $pdo->query($sql2)) { while ($row2 = $result2->fetch()) { $cor = 'red'; // Defina a cor para vermelho por padrão // Verifique se a capacidade é maior que 0 para determinar a cor if ($row2['capacidade'] > 0) { $local[] = array( 'lat' => floatval($row2['latitude']), 'lng' => floatval($row2['longitude']), 'nome' => $row2['nome'], 'cor' => $cor, ); } // Adicione as informações do marcador ao array principal (opcional) $markers[] = array( 'lat' => floatval($row2['latitude']), 'lng' => floatval($row2['longitude']), 'nome' => $row2['nome'], 'cor' => $cor, ); } } if ($result = $pdo->query($sql)) { while ($row = $result->fetch()) { $cor = ''; // Define a cor do marcador com base no nível de acesso switch ($row['nivelAcesso']) { case 'aluno': $cor = 'blue'; $alunos[] = array( 'lat' => floatval($row['latitude']), 'lng' => floatval($row['longitude']), 'nome' => $row['nome'], 'cor' => $cor, ); break; case 'prof': $cor = 'green'; $professores[] = array( 'lat' => floatval($row['latitude']), 'lng' => floatval($row['longitude']), 'nome' => $row['nome'], 'cor' => $cor, ); break; case 'resp': $cor = 'yellow'; $responsaveis[] = array( 'lat' => floatval($row['latitude']), 'lng' => floatval($row['longitude']), 'nome' => $row['nome'], 'cor' => $cor, ); break; } // Adicione as informações do marcador ao array principal (opcional) $markers[] = array( 'lat' => floatval($row['latitude']), 'lng' => floatval($row['longitude']), 'nome' => $row['nome'], 'cor' => $cor, ); } } ?> <!-- Div para exibir o mapa --> <div id="map"></div> <script> // Função de retorno para carregar a API do Google Maps de forma assíncrona function initMap() { // Coordenadas iniciais e nível de zoom para exibir o Brasil var brazil = { lat: -14.235004, lng: -51.92528 }; var zoomLevel = 5; // Crie um mapa com as coordenadas do Brasil var map = new google.maps.Map(document.getElementById('map'), { center: brazil, zoom: zoomLevel }); // Chame as funções para adicionar os marcadores adicionarMarcadoresAlunos(map); adicionarMarcadoresProfessores(map); adicionarMarcadoresResponsaveis(map); adicionarMarcadoresLocais(map); } // Função para adicionar marcadores de alunos ao mapa function adicionarMarcadoresAlunos(map) { var alunos = <?php echo json_encode($alunos); ?>; for (var i = 0; i < alunos.length; i++) { criarMarcador(alunos[i], map); } } // Função para adicionar marcadores de professores ao mapa function adicionarMarcadoresProfessores(map) { var professores = <?php echo json_encode($professores); ?>; for (var i = 0; i < professores.length; i++) { criarMarcador(professores[i], map); } } // Função para adicionar marcadores de responsáveis ao mapa function adicionarMarcadoresResponsaveis(map) { var responsaveis = <?php echo json_encode($responsaveis); ?>; for (var i = 0; i < responsaveis.length; i++) { criarMarcador(responsaveis[i], map); } } // Função para adicionar marcadores de locais ao mapa function adicionarMarcadoresLocais(map) { var locais = <?php echo json_encode($local); ?>; for (var i = 0; i < locais.length; i++) { criarMarcador(locais[i], map); } } // Adicione um marcador ao mapa function criarMarcador(markerData, map) { var marker = new google.maps.Marker({ position: { lat: markerData.lat, lng: markerData.lng }, map: map, title: markerData.nome, icon: { url: "https://maps.google.com/mapfiles/ms/micons/" + markerData.cor + ".png", scaledSize: new google.maps.Size(32, 32) } }); var infowindow = new google.maps.InfoWindow({ content: markerData.nome }); marker.addListener('click', function () { infowindow.open(map, marker); }); } </script> <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAki4atbA8ey0lMY4ByHeF8qaGWvQ8HlGM&callback=initMap"></script> </body> </html>
Save
Cancel