web-dev-qa-db-ja.com

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のどこに配置して機能させるかがわかりませんでした。


編集:@Symbolixが指摘しているように、setMaxBoundsは本当に私が探しているものとは異なるものです。ズームを完全に無効にして、コントロールを削除したいだけです。リーフレットのJavaScriptAPIドキュメントで説明されている zoomControl オプションは私が望むもののようですが、Rパッケージでそのオプションを見つけることができません。

14
Brian Stamper

ズームコントロールを削除するには、leafletOptionszoomControl = FALSEを設定します。例えば:

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

これは、マウスホイールでのダブルクリックまたはスクロールによるズームを無効にしないことに注意してください。ズームレベルを制御するには、minZoommaxZoomを再びleafletOptionsに設定します。ズームを無効にするには、minZoommaxZoomに等しく設定します。

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')`
25
George Wood