Leaflet
# Leaflet

Leaflet é uma biblioteca JavaScript de código aberto usada para construir aplicativos virtuais de mapeamento. Lançado pela primeira vez em 2011, ele suporta a maioria das plataformas móveis e desktop, como HTML5 e CSS3. Entre seus usuários estão FourSquare, Pinterest e Flickr.
O Leaflet permite que desenvolvedores sem experiência em GIS exibam facilmente mapas da web em blocos hospedados em um servidor público, com sobreposições de blocos opcionais. Ele pode carregar dados de recursos de arquivos GeoJSON, estilizá-los e criar camadas interativas, como marcadores com pop-ups quando clicados.
É desenvolvido por Volodymyr Agafonkin, que ingressou no Mapbox em 2013.

## Uso

Um uso típico de Leaflet envolve vincular um elemento "mapa" do Leaflet a um elemento HTML, como um div. Camadas e marcadores são então adicionados ao elemento do mapa.
Neste exemplo de código, a própria biblioteca Leaflet pode ser acessada por meio da variável L.

## Características

O Leaflet oferece suporte nativo a camadas do Web Map Service (WMS), camadas GeoJSON, camadas vetoriais e camadas Tile. Muitos outros tipos de camadas são suportados através de plugins.
Como outras bibliotecas de mapas da web, o modelo de exibição básico implementado pelo Leaflet é um mapa base, mais zero ou mais sobreposições translúcidas, com zero ou mais objetos vetoriais exibidos no topo.

### Elementos

Os principais tipos de objetos Leaflet são:
* Tipos raster (TileLayer e ImageOverlay)
* Tipos de vetor (Path, Polygon e tipos específicos, como Circle)
* Tipos agrupados (LayerGroup, FeatureGroup e GeoJSON)
* Controles (Zoom, Layers, etc.)
Há também uma variedade de classes utilitárias como interfaces para gerenciamento de projeções, transformações e interação com o DOM.

### Suporte para formatos GIS

Leaflet tem suporte básico para vários formatos padrão GIS, com outros suportados em plug-ins.
| Padrão | Apoiar |
| GeoJSON | Bom suporte central por meio da função geoJson |
| KML, CSV, WKT, TopoJSON, GPX | Compatível com o plugin Leaflet-Omnivore |
| WMS | Suporte principal por meio do TileLayer. Subtipo WMS |
| WFS | Não suportado, embora existam plug-ins de terceiros. |
| GML | Não suportado. |

### Suporte ao navegador

O Leaflet 0.7 é compatível com Chrome, Firefox, Safari 5+, Opera 12+ e IE 7–11.

### Exemplos de recursos úteis

O onEachFeature do Leaflet é bastante útil ao lidar, por exemplo, com dados geojson. A função contém dois parâmetros: "feature" e "layer". "recurso" nos permite acessar cada objeto dentro do geojson e "camada" nos permite adicionar pop-ups, dicas de ferramentas etc.
Um exemplo em javascript é fornecido abaixo:
Também é possível adicionar a palavra-chave "async" à função getFeature para usar promessas como fetch. Podemos utilizar propriedades em cada objeto do geojson para criar jsonqueries customizados e obter, por exemplo, informações específicas da cidade e exibi-las usando layer.bindTooltip, layer.bindPopup etc.