Geoprostorové mapy s leaflet

Tvorba dashboardů pomocí shinydashboard

Png Kee Seng

Researcher

Struktura grafu leaflet

  • První vrstvou je leaflet()
    • Jako ggplot()
  • addTiles() přidá mapu světa
    • Jako x, y v ggplot
  • Nové vrstvy se přidávají pomocí %>%
    • Jako + v ggplot
library(leaflet)

m <- leaflet() %>%
addTiles()

Prázdné plátno leaflet.

Plátno leaflet s mapou světa.

Tvorba dashboardů pomocí shinydashboard

Různí poskytovatelé map

  • Přidejte addProviderTiles()
  • Příklady poskytovatelů
    • MtbMap: Horská cyklistika
    • Esri.NatGeoWorldMap: Od National Geo
    • Stamen.Toner: Černobílá
m %>%
  addProviderTiles(providers$MtbMap)
m %>%
  addProviderTiles(providers$Esri.NatGeoWorldMap)
m %>% 
  addProviderTiles(providers$Stamen.Toner)

Leaflet s poskytovatelem MtbMap.

Leaflet s poskytovatelem Nat Geo.

Leaflet s poskytovatelem Stamen Toner.

1 https://rstudio.github.io/leaflet/basemaps.html
Tvorba dashboardů pomocí shinydashboard

Přidání polygonů v leaflet

  • Přidání polygonů pomocí addPolygon()
    • Hlavním argumentem je objekt sf

Přidání polygonu v leaflet.

leaflet() %>% 
  addTiles() %>% 

addPolygons(data=london_poly,
col="red",
label=~Name)
Tvorba dashboardů pomocí shinydashboard

Přidání polylinií v leaflet

  • Nutné souřadnice zeměpisné délky a šířky
    • Obsaženy v $geometry[[1]]
  • Polylinie se vykreslují pomocí addPolylines()
    • Délka a šířka odpovídají prvnímu a druhému sloupci
loop_geo <- london_loop$geometry[[1]]

capital_geo <- london_capital$geometry[[1]]
m2 <- leaflet() %>% 
  addTiles() %>% 
  addPolygons(data = london_poly, col="red", 
                  label=~Name) %>% 

addPolylines(loop_geo[,1], loop_geo[,2]) %>% addPolylines(capital_geo[,1], capital_geo[,2], color = "orange")
Tvorba dashboardů pomocí shinydashboard

Přidání značek v leaflet

  • Lze přidat značky
    • addCircleMarkers(): zobrazí každý bod jako kruh
    • addMarkers(): zobrazí každý bod jako běžnou značku
m2 %>%
  addCircleMarkers(data = listings_geo,
                   label = ~name)
m2 %>%
  addMarkers(data = listings_geo,
                   label = ~name)

Kruhové značky v leaflet.

Běžné značky v leaflet.

Tvorba dashboardů pomocí shinydashboard

markerClusterOptions

  • Lze přidat markerClusterOptions()
    • Zobrazí souhrnné hodnoty

Značky s možnostmi shlukování.

m2 %>%
  addMarkers(data = listings_geo,

clusterOptions = markerClusterOptions())
Tvorba dashboardů pomocí shinydashboard

Výběr uživatele

  • Přidejte vrstvu addLayersControl() pro vstup uživatele
  • baseGroups: Přepínání mezi různými poskytovateli map
    • Každou dlaždici poskytovatele je třeba pojmenovat
    • baseGroups nastavte jako vektor těchto názvů
  • overlayGroups: Zapínání a vypínání vrstev
    • Každou vrstvu je třeba pojmenovat
    • overlayGroups nastavte jako vektor těchto názvů
m_london <- leaflet(london_poly) %>% 

addTiles(group="Default") %>% addProviderTiles(providers$Stamen.Toner,
group = "Toner") %>%
addProviderTiles(providers$Esri.NatGeoWorldMap,
group = "Nat Geo") %>%
addPolygons(col="red", label=~Name,
group = "Ward") %>%
addPolylines(loop_geo[,1], loop_geo[,2],
group = "London loop") %>%
addPolylines(capital_geo[,1], capital_geo[,2], labelOptions = labelOptions(noHide = TRUE), color = "orange",
group = "Capital ring", ) %>%
addMarkers(data = listings_geo, clusterOptions = markerClusterOptions(),
group = "Listings") %>%
addLayersControl(
baseGroups = c("Default", "Toner", "Nat Geo"),
overlayGroups = c("Ward","Listings", "London loop", "Capital loop"))
Tvorba dashboardů pomocí shinydashboard

Výběr uživatele – výsledek

Mapa leaflet s výběrem uživatele.

Tvorba dashboardů pomocí shinydashboard

Lass uns üben!

Tvorba dashboardů pomocí shinydashboard

Preparing Video For Download...