【问题标题】:R leaflet zoomControl optionR传单缩放控制选项
【发布时间】:2016-07-21 19:48:03
【问题描述】:

我正在使用传单在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 确实与我正在寻找的不同。我真的只想完全禁用缩放,并删除控件。传单 JavaScript API 文档中描述的 zoomControl 选项似乎是我想要的,但我在 R 包中找不到该选项。

【问题讨论】:

  • 您是否尝试过类似的方法:addProviderTiles("CartoDB.Positron", options=tileOptions(minZoom=9)) 或 addProviderTiles("CartoDB.Positron", options=tileOptions(maxZoom=9))。您可以根据需要更改号码。
  • setMaxBounds( ) 阻止您向左/向右/向上/向下滚动(即地图边界),而不是缩放级别。从?setViewoptions = list( ) 可用的zoom options 似乎不包括zoomControl。功能
  • @MLavoie,我检查了 maxZoom/minZoom,确实接近了,但如果我也可以删除缩放按钮会更好。
  • @Symbolix,是的,我现在看到了,这并不是我所期望的行为。现在我真的只是希望我可以禁用任何缩放并删除控件。
  • @BrianStamper - 应该可以,但你只需要弄清楚如何实现javascript zoom control 函数

标签: r leaflet


【解决方案1】:

要移除缩放控件,请将zoomControl = FALSE 设置为leafletOptions。例如:

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

请注意,这不会通过双击或使用鼠标滚轮滚动来禁用缩放。您可以通过设置minZoommaxZoom 来控制缩放级别,同样在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')`

【讨论】:

  • 这在您事先知道所需的缩放比例时有效,但如果您需要根据特定变量调整缩放比例怎么办,例如使用 fitBounds() ? LeafletOptions() 中的 doubleClickZoom=FALSE 或 scrollWheelZoom=FALSE 是理想的,但这似乎在当前版本中没有实现。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-07-13
  • 2011-05-28
  • 2023-04-01
  • 1970-01-01
  • 2018-11-25
  • 2018-02-19
  • 1970-01-01
相关资源
最近更新 更多