Peta geospasial dengan leaflet

Membangun Dashboard dengan shinydashboard

Png Kee Seng

Researcher

Struktur plot leaflet

  • Lapisan awal: leaflet()
    • Mirip ggplot()
  • addTiles() menambahkan peta dunia
    • Mirip x, y di ggplot
  • Lapisan baru ditambahkan dengan %>%
    • Mirip + di ggplot
library(leaflet)

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

Kanvas leaflet kosong.

Kanvas leaflet dengan peta dunia.

Membangun Dashboard dengan shinydashboard

Penyedia peta berbeda

  • Tambahkan addProviderTiles()
  • Contoh penyedia:
    • MtbMap: sepeda gunung
    • Esri.NatGeoWorldMap: oleh National Geo
    • Stamen.Toner: hitam putih
m %>%
  addProviderTiles(providers$MtbMap)
m %>%
  addProviderTiles(providers$Esri.NatGeoWorldMap)
m %>% 
  addProviderTiles(providers$Stamen.Toner)

Leaflet dengan penyedia MtbMap.

Leaflet dengan penyedia nat geo.

Leaflet dengan penyedia stamen toner.

1 https://rstudio.github.io/leaflet/basemaps.html
Membangun Dashboard dengan shinydashboard

Menambahkan poligon di leaflet

  • Tambahkan poligon dengan addPolygon()
    • Argumen utama: objek sf

Menambahkan poligon di leaflet.

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

addPolygons(data=london_poly,
col="red",
label=~Name)
Membangun Dashboard dengan shinydashboard

Menambahkan polyline di leaflet

  • Perlu bujur dan lintang
    • Tersimpan di $geometry[[1]]
  • Polyline digambar dengan addPolylines()
    • Bujur dan lintang ada di kolom 1 dan 2
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")
Membangun Dashboard dengan shinydashboard

Menambahkan penanda di leaflet

  • Dapat menambahkan penanda
    • addCircleMarkers(): tiap titik sebagai lingkaran
    • addMarkers(): tiap titik sebagai penanda umum
m2 %>%
  addCircleMarkers(data = listings_geo,
                   label = ~name)
m2 %>%
  addMarkers(data = listings_geo,
                   label = ~name)

Penanda lingkaran di leaflet.

Penanda umum di leaflet.

Membangun Dashboard dengan shinydashboard

markerClusterOptions

  • Dapat menambahkan markerClusterOptions()
    • Menampilkan nilai teragregasi

Penanda dengan opsi kluster.

m2 %>%
  addMarkers(data = listings_geo,

clusterOptions = markerClusterOptions())
Membangun Dashboard dengan shinydashboard

Pilihan pengguna

  • Tambahkan lapisan addLayersControl() untuk input pengguna
  • baseGroups: pengguna beralih antar penyedia peta
    • Beri label tiap tile penyedia
    • Setel baseGroups sebagai vektor label tersebut
  • overlayGroups: pengguna menyalakan/mematikan lapisan
    • Beri label tiap lapisan
    • Setel overlayGroups sebagai vektor label tersebut
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"))
Membangun Dashboard dengan shinydashboard

Pilihan pengguna, ditampilkan

Peta leaflet dengan pilihan pengguna.

Membangun Dashboard dengan shinydashboard

Ayo berlatih!

Membangun Dashboard dengan shinydashboard

Preparing Video For Download...