R自动缩放更新的代理贴图对象(在闪亮中)
我正在使用R自动缩放更新的代理贴图对象(在闪亮中),r,shiny,leaflet,R,Shiny,Leaflet,我正在使用传单软件包在Shiny中试验一些地图。我希望能够有一个基础地图,数据将发生变化,然后重新映射。但是,我尝试使用proxy函数,其中有一个底图,我只是更改添加的数据点。所有这些都有效,但是地图不会缩放到数据点位置。它保持最远的缩放 重现问题的代码: library(shiny) library(leaflet) r_colors <- rgb(t(col2rgb(colors()) / 255)) names(r_colors) <- colors() ui <-
传单
软件包在Shiny中试验一些地图。我希望能够有一个基础地图,数据将发生变化,然后重新映射。但是,我尝试使用proxy
函数,其中有一个底图,我只是更改添加的数据点。所有这些都有效,但是地图不会缩放到数据点位置。它保持最远的缩放
重现问题的代码:
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)
库(闪亮)
图书馆(单张)
r_colors尝试在proxy()中添加参数“fitBounds”
我修改了G.Cocca的答案(主要是添加了一个“点”的数据框),以得出以下结论:
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 <- data.frame("long" = rnorm(40) * 2 + 13,
"lat" = rnorm(40) + 48)
leafletProxy('mymap', session) %>%
clearMarkers() %>%
addMarkers(data = points) %>%
fitBounds(lng1 = max(points$long),lat1 = max(points$lat),
lng2 = min(points$long),lat2 = min(points$lat))
})
}
shinyApp(ui, server)
库(闪亮)
图书馆(单张)
r\u在observeEvent
中调用proxy
两次的颜色。你可以删除第一个代码块。捕捉得很好,@SeGa。我修改了。
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 <- data.frame("long" = rnorm(40) * 2 + 13,
"lat" = rnorm(40) + 48)
leafletProxy('mymap', session) %>%
clearMarkers() %>%
addMarkers(data = points) %>%
fitBounds(lng1 = max(points$long),lat1 = max(points$lat),
lng2 = min(points$long),lat2 = min(points$lat))
})
}
shinyApp(ui, server)