Я работаю над интерактивной картой с помощью буклета R пакета.
Я хотел бы автоматически изменять видимые слои в зависимости от уровня масштабирования.
Например, я бы хотел нравится, когда слой многоугольника исчезает при увеличении, заменяется слоем точек. Примерно так: https://tree-map.nycgovparks.org/
Я пробовал много разных трюков и детально изучал помощь из пакетов "leaflet" и "leaflet.extras", но не смог найти что-нибудь, что делает это.
Я также нашел что-то прямо из листовки, но это не воспроизводимо при R: Установка уровня масштабирования для слоев в листовке
Я пытался используйте параметры minZoom и maxZoom из markerOptions, но, похоже, он не выполняет то, что я хочу.
Вот мой код для этого примера:
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 ничего не меняют. Я ожидал, что слой точек появится только между уровнями масштабирования 15 и 20, но, похоже, он не работает так:
Изображение из средства просмотра