Conteúdo principal

Utilize o Jquery para ler um arquivo Json com coordenadas para criar um mapa de geolocalização

 

Neste artigo vou abordar 3 tecnologias: 

Json -  que é um padrão de trocas de dados rápidos e simples que funciona para ler dados uma API ou um documento. 

JQuery -  que é uma biblioteca de funções em Java-script que interage com o html.

OpenStreetMap - que é uma biblioteca em Java-script de criar mapas interativos.

 

Pelo json temos as informações para serem carregadas no mapa. Veja o exemplo de um arquivo json:

[{"city":"Rio de Janeiro","lat":"-22.9083","lng":"-43.1964","country":"Brazil","population":"12272000"},
 {"city":"São Paulo","lat":"-23.5504","lng":"-46.6339","country":"Brazil","population":"22046000"}]

É importante pensar o json como sendo uma planilha onde você tem as linhas que representam a informação de um registro e as colunas que representa as suas variáveis. Então temos as variáveis city(cidade), lat(latitude), lng(longintude), Country(País), population(População). Cada linha representa um registro.

 

Vamos utilizar um código jquery para ler os dados. Veja o código:

<script>
          $(document).ready(function(){
            //carrega o arquivo no formato .json
            $.getJSON("/sites/default/files/cidade.txt", function(data){
              var employee_data = '';
               $.each(data, function(key, value){ // lê um registro
                 // as váriáveis abaixo carregam os valores da linha.  
                  let cidade=value.city  
                  let pais=value.country
                  let populacao=value.population
                  let latitude=value.lat
                  let longitude=value.lng
                   });
                 });  
              });
 </script> 

 

Agora vamos incluir o OpenStreetMap para poder exibir estas informações no mapa.

<!DOCTYPE HTML>
<html lang=”pt-br”>
  <head>
    <meta charset="utf-8">
     <style> 
      .map {
        height: 400px
        }
     </style>
     <!-- Carrega as informações da biblioteca do openStreetMap -->
     <link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css">
     <script src="https://unpkg.com/[email protected]/dist/leaflet.js"></script>

     <!-- Carrega a biblioteca do Jquery -->
      <script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>        
   </head>
    <body>
      <!-- Exibe o mapa através do id="map" -->
        <div id="map" class="map"></div>

        
            <script>
            //declaração das varíaveis
            var map, marker 

            //define id="map" irá carragar o mapa e passar os parâmetros de latitude, logintude e zoom           
            map = L.map('map').setView([-22.9083,-43.1964],2); 

            //Carraga o mapa
            L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
              key: '',
              styleId: 103288,
              maxZoom: 19
            }).addTo(map);

          
          //Lê um arquivo no formato .json onde estão as informações de latitude, longitude, nome da cidade, país e População 
          $(document).ready(function(){
            $.getJSON("/sites/default/files/cidade.txt", function(data){
              var employee_data = '';
              $.each(data, function(key, value){// fica em loop até carregar todos as linhas do arquivo json

                //cria um icone de localização da cidade na latitude e longitude no map.
                marker = L.marker([value.lat, value.lng]).addTo(map);

               //cria um balão com as informações sobre a cidade.
                marker.bindPopup('<p><strong>'+value.city+'</strong>('+value.country+')</p><p>População: '+value.population+'</p>').openPopup();
                   });
                 });  
          });
          </script>
  </body>
</html>

 

Por fim temos este mapa com algumas cidades do mundo com suas coordanadas e população:

 



Esperou que você tenha aprendido como é fácil criar um mapa com informações de geolocalização.

Seção: