Em essência, o Leaflet é projetado para ser leve. Dito isto, existem centenas de plugins disponíveis para ampliar e melhorar as funcionalidades dos seus mapas na web.
Hoje vamos ilustrar a adição de um plugin ao nosso mapa a partir do dia 6.
O plugin L.Control.ZoomBar adiciona um controle de zoom personalizado que nos permite desenhar uma caixa ao redor da área que queremos ampliar, bem como adicionar um botão Home para retornar à visualização inicial do mapa.
1. Instalando o Plugin
O procedimento de instalação de um plug-in do Leaflet varia. Alguns são instalados usando npm outros, colocando manualmente os arquivos. Para o plugin ZoomBar, a instalação é um processo manual.
O plugin e as instruções podem ser encontrados em:
– https://github.com/elrobis/L.Control.ZoomBar.
Depois de baixar os arquivos e colocá-los no(s) local(is) apropriado(s), adicionamos o seguinte referência ao cabeçalho do nosso arquivo HTML:
<link rel="stylesheet" type="text/css" href="stylesheets/L.Control.ZoomBar.css"/> <script type="text/javascript" src="js/L.Control.ZoomBar.js"></script>
As imagens para o plugin ZoomBar devem ser instaladas no mesmo local que outras imagens do Leaflet, no nosso caso:
stylesheets/images
2. Configurando o Controle
Em seguida, precisamos fazer algumas modificações no nosso arquivo JavaScript. A declaração do mapa é alterada para:
var map = L.map(document.getElementById('mapDIV'), { center: [-20.231, -44.250], zoom: 9, zoomControl: false });
Alteramos um pouco o centro do mapa, bem como o nível de zoom, para começarmos com uma visão mais ampla. A opção zoomControl:false desativa o controle de zoom padrão para que possamos usar o ZoomBar.
Agora tudo o que precisamos fazer é adicionar o ZoomBar no final do código JavaScript:
// Adicionando o ZoomBar var zoom_bar = new L.Control.ZoomBar({position: 'topleft'}).addTo(map);
Observe que definimos a posição no canto superior esquerdo do mapa. Por padrão, ele ficará lá, mas isso ilustra a opção necessária para definir o local do controle. Por exemplo, se quiséssemos no canto superior direito, usaríamos:
var zoom_bar = new L.Control.ZoomBar({position: 'topright'}).addTo(map);
Com essas poucas alterações, obtemos o novo controle de zoom no canto superior esquerdo:
Clicar no botão de zoom para a área (inferior) nos permite desenhar uma caixa de zoom e aplicar zoom nela.
O botão home nos retorna para a visualização inicial.
Nota: em telas pequenas (ou seja, Mobile), o botão de zoom na área não é exibido devido ao recurso de zoom de captura do dispositivo. Se você não vir o botão inferior, é por isso.
Dê uma olhada na página Plugins do Leaflet para ver o que mais você pode achar útil.
3. O Código
Para visualizar o código-fonte completo, clique aqui.
4. YouTube
Você pode também assistir o que foi apresentado nesse post no YouTube: