リーフレットを使用して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のどこに配置して機能させるかがわかりませんでした。
編集:@Symbolixが指摘しているように、setMaxBoundsは本当に私が探しているものとは異なるものです。ズームを完全に無効にして、コントロールを削除したいだけです。リーフレットのJavaScriptAPIドキュメントで説明されている zoomControl オプションは私が望むもののようですが、Rパッケージでそのオプションを見つけることができません。
ズームコントロールを削除するには、leafletOptions
にzoomControl = FALSE
を設定します。例えば:
library(leaflet)
leaflet(options = leafletOptions(zoomControl = FALSE)) %>%
addTiles()
これは、マウスホイールでのダブルクリックまたはスクロールによるズームを無効にしないことに注意してください。ズームレベルを制御するには、minZoom
とmaxZoom
を再びleafletOptions
に設定します。ズームを無効にするには、minZoom
をmaxZoom
に等しく設定します。
leaflet(options = leafletOptions(zoomControl = FALSE,
minZoom = 3, maxZoom = 3)) %>%
addTiles()
ボーナスとして、マップの「静的」ビューが必要な場合は、dragging
オプションを使用してドラッグを無効にすることもできます。
leaflet(options = leafletOptions(zoomControl = FALSE,
minZoom = 3, maxZoom = 3,
dragging = FALSE)) %>%
addTiles()
上記のオプションを実装するには、最新のgithubバージョンのleaflet
をインストールする必要がある場合があることに注意してください。
# install github version of leaflet
if (!require('devtools')) install.packages('devtools')
devtools::install_github('rstudio/leaflet')`