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() sets minZoom level wrong
上的已结束问题有关我在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)
})