我正在为 Shiny 中的一些 map 试验 leaflet
包。我希望能够有一个 basemap ,数据将发生变化并随后重新映射。但是,我正在尝试使用 leafletProxy
函数,其中有一个 basemap ,我只是更改添加的数据点。所有这些都有效,但是 map 不会缩放到数据点位置。它保持在最远的变焦。
重现问题的代码:
library(shiny)
library(leaflet)
r_colors <- rgb(t(col2rgb(colors()) / 255))
names(r_colors) <- colors()
ui <- fluidPage(
leafletOutput("mymap"),
p(),
actionButton("goButton", "New Points")
)
server <- function(input, output, session) {
output$mymap <- renderLeaflet({
leaflet() %>%
addProviderTiles("Stamen.TonerLite",
options = providerTileOptions(noWrap = TRUE)
)
})
observeEvent(input$goButton, {
points <- cbind(rnorm(40) * 2 + 13, rnorm(40) + 48)
leafletProxy('mymap', session) %>%
clearMarkers() %>%
addMarkers(data = points)
})
}
shinyApp(ui, server)
我希望 map 在添加新点后自动放大。
最佳答案
尝试在 leafletProxy() 中添加参数“fitBounds”
leafletProxy('mymap', session) %>%
clearMarkers() %>%
addMarkers(data = points) %>%
fitBounds(lng1 = max(points$long),lat1 = max(points$lat),
lng2 = min(points$long),lat2 = min(points$lat))
关于R Auto Zoom 在 Shiny 中更新了 leafletProxy Map 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33216686/