1

setMaxBounds不将显示的矩形限制为指定的坐标。

多次放大(在我的浏览器上为 5)时,它会“接近”指定的矩形,如表中所示。

最小的例子

library(shiny)
library(leaflet)
ui <- fluidPage(
  column(6,
         leafletOutput('maxmap')
  )
  ,
  column(6,
         tableOutput('bbox')
  )
)
server <- function(input, output) {
  output$bbox <- renderTable(
    data.frame(Lat=c(input$maxmap_bounds$north,input$maxmap_bounds$south),
               Long=c(input$maxmap_bounds$east,input$maxmap_bounds$west)
    )
  )
  output$maxmap <- renderLeaflet({
    leaflet(width=500,height=400) %>%
      addProviderTiles('CartoDB.Positron') %>%
      setMaxBounds(lng1 = 10, lat1 = 20, lng2=11, lat2=21)
  })

}

shinyApp(ui = ui, server = server)

这可能与 github 上的一个已关闭问题setMaxBounds() 设置 minZoom 级别错误有关

我在 Windows 上使用 R3.4.1 传单 1.1.0

我是否误解了 setMaxBounds 应该做什么?我正在尝试它,因为 setView 似乎也会产生意想不到的结果,有时需要缩放以实现所需的“窗口”,有时会出现。

[编辑] 在 MLavoie 的建议下,我做了以下修改,它可以在 1% 以内正常工作,如闪亮的表格所示。我会标记为答案。

output$maxmap <- renderLeaflet({
leaflet(width=500,height=400) %>%
  addProviderTiles('CartoDB.Positron') %>%
  setMaxBounds(lng1 = 10, lat1 = 20, lng2=11, lat2=21) %>%
  setView(zoom=RgoogleMaps::MaxZoom(latrange=20:21, lonrange=10:11, size = c(500, 400)),lat=20.5, lng=10.5)
  })
4

0 回答 0