leaflet com markerCluster

Por Julio 01/03/2017

O leaflet é uma biblioteca javascript para criação de mapas interativos. O pacote leaflet do R é um htmlwidget que permite gerar esses mapas de forma direta no R, para usar em documentos RMarkdown e Shiny.

Uma das ferramentas que mais gosto do leaflet é a função markerClusterOptions(), que permite agrupar pontos no mapa em conjuntos de vários pontos.

Como exemplo, utilizaremos uma base de dados que contém a localização e informações das varas da Justiça Estadual no Brasil. A Tabela 1 mostra as cinco primeiras linhas dessa base. A coluna lab já foi trabalhada para ser adicionada nos marcadores do mapa como popup.

Table 1: Primeiras cinco linhas da base de dados de varas estaduais do Brasil.
lat long uf municipio nome lab
-21.243369 -48.80407 SP Santa Adélia VARA ÚNICA VARA ÚNICA
PRAÇA DR. ADHEMAR DE BARROS 255
Santa Adélia - SP, CEP 15950-000
Santa Adélia - SP
Telefone indisponível
-3.102226 -67.95186 AM Santo Antônio do Içá VARA DA COMARCA DE SANTO ANTÔNIO DO IÇÁ VARA DA COMARCA DE SANTO ANTÔNIO DO IÇÁ
HUGO RIBEIRO S/N
Santo Antônio do Içá - AM, CEP 69680-000
Santo Antônio do Içá - AM
(097) 9791-8763
-3.067617 -59.95668 AM Manaus 2º VARA DE FAMÍLIA E SUCESSÕES 2º VARA DE FAMÍLIA E SUCESSÕES
RUA PARAIBA S/N
Manaus - AM, CEP 69079-265
Manaus - AM
(092) 9233-0351
-8.623957 -35.95085 PE Cupira VARA UNICA DA COMARCA DE CUPIRA VARA UNICA DA COMARCA DE CUPIRA
RUA JOSE LUIZ DA SILVEIRA BARROS 146
Cupira - PE, CEP 55460-000
Cupira - PE
(081) 8137-3813
-24.705883 -47.55834 SP Iguape JUIZADO ESPECIAL CÍVEL E CRIMINAL JUIZADO ESPECIAL CÍVEL E CRIMINAL
RUA 9 DE JULHO 169
Iguape - SP, CEP 11920-000
Iguape - SP
(013) 3841-2401

Para utilizar o pacote leaflet, basta instalar o pacote via install.packages(). Na Figura 1, experimente passear pelo mapa. Procure também algum lugar que tenha várias varas juntas, para ver o que o markerCluster faz nesse caso.

library(dplyr)
library(leaflet)
dados_aj_lab %>% 
  leaflet() %>% 
  addTiles() %>% 
  addMarkers(lng = ~long, lat = ~lat, popup = ~lab,
             clusterOptions = markerClusterOptions())