Отображать слои с определенным уровнем масштабирования в буклете R - PullRequest
1 голос
/ 29 апреля 2020

Я работаю над интерактивной картой с помощью буклета 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, но, похоже, он не работает так:

Изображение из средства просмотра

...