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)
})