2016-04-01 14 views
7

EDYCJA: Jak wskazał @Symbolix, setMaxBounds naprawdę jest czymś innym niż to, czego szukam. Naprawdę chcę po prostu całkowicie wyłączyć powiększanie i usunąć kontrolki. Opcja zoomControl opisana w dokumentacji JavaScript API dla ulotek wydaje się być tym, czego chcę, ale nie mogę znaleźć tej opcji w pakiecie R.R leaflet zoomControl opcja


buduję narzędzie mapę w R stosując ulotkę, i chciałbym, aby ograniczyć powiększenie do pewnego obszaru, ale funkcja setMaxBounds wydaje się nie mieć żadnego wpływu.

library(dplyr) 
library(leaflet) 
library(tigris) 

ohio_map <- leaflet(counties('OH', cb = TRUE)) %>% 
    addProviderTiles("CartoDB.Positron") %>% 
    addPolygons(weight = .3, 
       color = "#229922", 
       layerId = ~NAME) %>% 
    setMaxBounds(lng1 = -84.800, 
       lat1 = 42.000, 
       lng2 = -80.500, 
       lat2 = 38.400) 
ohio_map 

To pokazuje prawy obszar mapy, ale nie zapobiega powiększaniu.

Byłoby jeszcze lepiej usunąć wszystkie elementy sterujące powiększeniem, dzięki czemu mogłem zastąpić nawigację czymś bardziej odpowiednim do aplikacji pod ręką. Znalazłem opcję zoomControl, ale nie byłem w stanie dowiedzieć się, gdzie umieścić to w R, aby uruchomić.

+0

mają yo próbujesz coś takiego: addProviderTiles ("CartoDB.Positron", options = tileOptions (minZoom = 9)) lub addProviderTiles ("CartoDB.Positron", options = tileOptions (maxZoom = 9)). Możesz zmienić numer, który chcesz. – MLavoie

+0

'setMaxBounds()' zatrzymuje przewijanie w lewo/prawo/w górę/w dół (tj. Granice mapy), a nie poziom powiększenia. Z '? SetView' opcje [opcje powiększania] (http://leafletjs.com/reference.html#map-zoompanoptions) dostępne dla' options = list() 'nie wydają się zawierać * zoomControl *. funkcja – SymbolixAU

+0

@MLavoie, sprawdziłem maxZoom/minZoom, i to jest blisko, ale byłoby lepiej, gdybym mógł również usunąć przyciski zoomu. –

Odpowiedz

9

Aby usunąć elementy sterujące powiększeniem, ustaw zoomControl = FALSE w leafletOptions. Na przykład:

library(leaflet) 
leaflet(options = leafletOptions(zoomControl = FALSE)) %>% 
    addTiles() 

Pamiętaj, że nie spowoduje to wyłączenia powiększania poprzez dwukrotne kliknięcie lub przewijanie kółkiem myszy. Możesz kontrolować poziom powiększenia, ustawiając minZoom i maxZoom, ponownie w leafletOptions. Aby wyłączyć powiększanie ustaw minZoom równa maxZoom:

leaflet(options = leafletOptions(zoomControl = FALSE, 
           minZoom = 3, maxZoom = 3)) %>% 
    addTiles() 

Jako bonus, w przypadku, gdy chcesz się „statyczny” Widok mapy, to może wyłączyć także przeciąganie poprzez opcję dragging:

leaflet(options = leafletOptions(zoomControl = FALSE, 
           minZoom = 3, maxZoom = 3, 
           dragging = FALSE)) %>% 
    addTiles() 

należy pamiętać, że konieczne może być zainstalowanie najnowszej wersji gitHub z leaflet wdrożyć powyższe opcje:

# install github version of leaflet 
if (!require('devtools')) install.packages('devtools') 
devtools::install_github('rstudio/leaflet')`