簡體   English   中英

在 R Leaflet 中以某些縮放級別顯示圖層

[英]Display layers at certain zoom levels in R Leaflet

我正在使用 R package“傳單”開發交互式 map。

我想根據縮放級別自動更改可見圖層。

例如,我想讓一個多邊形圖層在放大時消失,取而代之的是一個點圖層。 像這樣的東西: https://tree-map.nycgovparks.org/

我一直在嘗試許多不同的技巧並詳細探索“leaflet”和“leaflet.extras”包的幫助,但找不到任何這樣做的東西。

我還直接從 leaflet 中找到了一些東西,但它似乎在 R 下無法重現:在 leaflet 中設置圖層的縮放級別

我嘗試使用 markerOptions 中的 minZoom 和 maxZoom 選項,但它似乎沒有達到我想要的效果。

這是我的這個例子的代碼:


require(spData)
require(leaflet)
require(sf)

# loading shapes of countries from the package spData

data(world)
world <- st_read(system.file("shapes/world.gpkg", package="spData"))

# creating a sf objet with oceanian countries boundaries

oceania <- world[world$continent=="Oceania",]

#loading points events from the quakes dataset

data(quakes)

#Creating a leaflet objet with points and polygons

leaflet() %>%
  addProviderTiles(providers$CartoDB.Positron) %>%
  addCircleMarkers(lng=quakes$long,
                   lat=quakes$lat,
                   col="blue",
                   radius=3,
                   stroke=FALSE,
                   fillOpacity = 0.7,
                   options = markerOptions(minZoom=15, maxZoom=20)) %>%
  addPolygons(data= oceania,
              col="red")

它為我提供了來自 openstreetmap 預期背景的預期圖層,但 minZoom 和 maxZoom arguments 不會改變任何東西。 我希望點層只出現在縮放級別 15 和 20 之間,但它似乎不像這樣工作。

來自查看器的圖像

大多數“addElement()”類型函數中的group參數對於管理 map 的工作方式非常重要。 我推薦它,您可以通過仔細考慮如何對數據進行分組來做很多簡潔的事情。

通過調用groupOptions() ,您可以為您喜歡的任何圖層設置縮放級別。 下面我添加了您指定的縮放級別,但請隨意使用它以根據您的需要進行調整。

#Creating a leaflet object with points and polygons

leaflet() %>%
  addProviderTiles(providers$CartoDB.Positron) %>%
  addCircleMarkers(lng=quakes$long,
                   lat=quakes$lat,
                   col="blue",
                   radius=3,
                   stroke=FALSE,
                   fillOpacity = 0.7,
                   #options = markerOptions(minZoom=15, maxZoom=20), # Oldcode
                   group = "Quake Points") %>%                       # Newcode
  addPolygons(data= oceania,
              col="red") %>%                        
  groupOptions("Quake Points", zoomLevels = 15:20)                   # Newcode

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM