2016-04-01 71 views
7

編輯:正如@Symbolix指出的,setMaxBounds真的是不同於我正在尋找的東西。我真的只想完全禁用縮放,並刪除控件。小冊子JavaScript API文檔中描述的zoomControl選項似乎是我想要的,但我無法在R軟件包中找到該選項。R小冊子zoomControl選項


我R中使用單張建立地圖的工具,我想限制放大到一定區域,但setMaxBounds功能似乎並沒有產生任何影響。

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 

這顯示了地圖的右側區域,但不阻止縮小。

完全刪除縮放控件會更好,這樣我就可以用更適合手頭應用的東西來替換導航。我發現了一個zoomControl選項,但一直未能找出將它放在R的哪個位置以使其起作用。

+0

有喲你試着像這樣:addProviderTiles(「CartoDB.Positron」,options = tileOptions(minZoom = 9))或addProviderTiles(「CartoDB.Positron」,options = tileOptions(maxZoom = 9))。你可以改變你想要的數字。 – MLavoie

+0

'setMaxBounds()'阻止您從左/右/上/下滾動(即地圖邊界),而不是縮放級別。從''setView'中'options = list()'可用的[zoom options](http://leafletjs.com/reference.html#map-zoompanoptions)不包含* zoomControl *。函數 – SymbolixAU

+0

@MLavoie,我查看了maxZoom/minZoom,並且確實接近,但如果我也可以移除縮放按鈕,那會更好。 –

回答

9

要刪除縮放控件,請在leafletOptions中設置zoomControl = FALSE。例如:

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

請注意,這不會禁用通過雙擊或滾動鼠標滾輪來縮放。您可以通過設置minZoommaxZoom來控制縮放級別,同樣在leafletOptions中。要禁用變焦,設置minZoom等於maxZoom

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

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

作爲獎勵,如果你想地圖的「靜態」的觀點,也可以禁用通過dragging選項拖動

請注意,您可能需要安裝的leaflet 最新版本的GitHub執行上述選項:

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