LeafletJS - Controles

O folheto fornece vários controles, como zoom, atribuição, escala, etc., onde -

  • Zoom- Por padrão, este controle existe no canto superior esquerdo do mapa. Tem dois botões"+" e "–", usando o qual você pode ampliar ou reduzir o mapa. Você pode remover o controle de zoom padrão definindo ozoomControl opção das opções do mapa para false.

  • Attribution- Por padrão, este controle existe no canto inferior direito do mapa. Ele exibe os dados de atribuição em uma pequena caixa de texto. Por padrão, ele exibe o texto. Você pode remover o controle de atribuição padrão definindo oattributionControl opção das opções do mapa para false.

  • Scale- Por padrão, este controle existe no canto inferior esquerdo do mapa. Ele exibe o centro atual da tela.

Neste capítulo, explicaremos como você pode criar e adicionar todos esses três controles ao seu mapa usando a biblioteca Leaflet JavaScript.

Ampliação

Para adicionar um controle de zoom de sua preferência ao mapa usando a biblioteca JavaScript do Leaflet, siga as etapas abaixo -

Step 1 - Crie um Map objeto passando um elemento (String ou objeto) e opções de mapa (opcional).

Step 2 - Crie um Layer objeto passando a URL do bloco desejado.

Step 3 - Adicione o objeto de camada ao mapa usando o addLayer() método do Map classe.

Step 4 - Crie a variável zoomOptions e defina seus próprios valores de texto para as opções de zoom-in e zoom-out, em vez dos padrões (+ e -).

Em seguida, crie o controle de zoom passando a variável zoomOptions para L.control.zoom() como mostrado abaixo.

// zoom control options
var zoomOptions = {
   zoomInText: '1',
   zoomOutText: '0',
};
// Creating zoom control
var zoom = L.control.zoom(zoomOptions);

Step 5 - Adicione o objeto de controle de zoom criado na etapa anterior ao mapa usando o addTo() método.

// Adding zoom control to the map
zoom.addTo(map);

Exemplo

A seguir está o código para adicionar seu próprio controle de zoom ao mapa, em vez do padrão. Aqui, ao premir 1, o mapa aumenta o zoom e ao premir 0, o mapa diminui.

<!DOCTYPE html>
<html>
   <head>
      <title>Zoom Example</title>
      <link rel = "stylesheet" href = "http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.css"/>
      <script src = "http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.js"></script>
   </head>
   
   <body>
      <div id = "map" style = "width:900px; height:580px"></div>
      <script>
         // Creating map options
         var mapOptions = {
            center: [17.385044, 78.486671],
            zoom: 10,
            zoomControl: false
         }
         var map = new L.map('map', mapOptions); // Creating a map object
         
         // Creating a Layer object
         var layer = new L.TileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png');
         map.addLayer(layer);   // Adding layer to the map
         
         // zoom control options
         var zoomOptions = {
            zoomInText: '1',
            zoomOutText: '0',
         };
         var zoom = L.control.zoom(zoomOptions);   // Creating zoom control
         zoom.addTo(map);   // Adding zoom control to the map
      </script>
   </body>
   
</html>

Ele gera a seguinte saída -

Atribuição

Para adicionar uma atribuição sua ao mapa usando a biblioteca JavaScript Leaflet, siga as etapas abaixo -

Step 1 - Crie um Mapobjeto passando um elemento < div > (String ou objeto) e opções de mapa (opcional).

Step 2 - Crie um Layer objeto passando a URL do bloco desejado.

Step 3 - Adicione o objeto de camada ao mapa usando o addLayer() método do Map classe.

Step 4 - Crie o attrOptions variável e definir seu próprio valor de prefixo em vez do padrão (folheto).

Em seguida, crie o controle de atribuição passando o attrOptions variável para L.control.attribution() como mostrado abaixo.

// Attribution options
var attrOptions = {
   prefix: 'attribution sample'
};

// Creating an attribution
var attr = L.control.attribution(attrOptions);

Step 5 - Adicione o attribution control objeto criado na etapa anterior para o mapa usando o addTo() método.

// Adding attribution to the map
attr.addTo(map);

Exemplo

O código a seguir adiciona nosso próprio controle de atribuição ao seu mapa, em vez do padrão. Aqui, em vez disso, a amostra de atribuição de texto será exibida.

<!DOCTYPE html>
<html>
   <head>
      <title>Attribution Example</title>
      <link rel = "stylesheet" href = "http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.css"/>
      <script src = "http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.js"></script>
   </head>
   
   <body>
      <div id = "map" style = "width: 900px; height: 580px"></div>
      <script>
         // Creating map options
         var mapOptions = {
            center: [17.385044, 78.486671],
            zoom: 10,
            attributionControl: false
         }
         var map = new L.map('map', mapOptions); // Creating a map object
         
         // Creating a Layer object
         var layer = new L.TileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png');
         map.addLayer(layer);    // Adding layer to the map
         
         // Attribution options
         var attrOptions = {
            prefix: 'attribution sample'
         };
         
         // Creating an attribution
         var attr = L.control.attribution(attrOptions);
         attr.addTo(map);  // Adding attribution to the map
      </script>
   </body>
   
</html>>

Ele gera a seguinte saída -

Escala

Para adicionar um controle de escala de sua preferência ao mapa usando a biblioteca JavaScript Leaflet, siga as etapas abaixo -

Step 1 - Crie um Mapobjeto passando um elemento < div > (String ou objeto) e opções de mapa (opcional).

Step 2 - Crie um Layer objeto passando a URL do bloco desejado.

Step 3 - Adicione o layer objeto ao mapa usando o addLayer() método do Map classe.

Step 4 - Criar controle de escala passando o L.control.scale() como mostrado abaixo.

// Creating scale control
var scale = L.control.scale();

Step 5 - Adicione o scale control objeto criado na etapa anterior para o mapa usando o addTo() método conforme mostrado abaixo.

// Adding scale control to the map
scale.addTo(map);

Exemplo

O código a seguir adiciona controle de escala ao seu mapa.

<!DOCTYPE html>
<html>
   <head>
      <title>Scale Example</title>
      <link rel = "stylesheet" href = "http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.css" />
      <script src = "http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.js"></script>
   </head>
   
   <body>
      <div id = "map" style = "width:900px; height:580px"></div>
      <script>
         // Creating map options
         var mapOptions = {
            center: [17.385044, 78.486671],
            zoom: 10
         }
         // Creating a map object
         var map = new L.map('map', mapOptions);
         
         // Creating a Layer object
         var layer = new L.TileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png');
         map.addLayer(layer); // Adding layer to the map
         var scale = L.control.scale(); // Creating scale control
         scale.addTo(map); // Adding scale control to the map
      </script>
   </body>
   
</html>

Ele gera a seguinte saída -