r - 如何在 R Shiny 网页中访问 Leaflet 中同步地图的缩放和位置设置
问题描述
我正在构建一个显示同步地图的 R Shiny 网页。根据用户设置的过滤条件,显示的地图数量会发生变化。这些地图是作为传单即时构建的,并在动态 UI 面板中使用 sync() 显示。
当用户进行新选择时,我希望地图的位置和缩放级别保持不变。我想我可以通过保存并重新应用地图当前状态的缩放和位置值来做到这一点,但是当它们被包装在渲染中的 sync() 中时,我不知道如何获取这些值用户界面。
这是迄今为止我所拥有的一个简化的、可运行的示例。
library(shiny)
library(leaflet)
library(leafsync)
ui <- fluidPage(
# Application title
titlePanel("Display N Maps"),
# Sidebar with a slider input for number of bins
sidebarLayout(
sidebarPanel(
sliderInput("mapCount",
"Number of maps:",
min = 1,
max = 4,
value = 2)
),
# Show a plot of the generated distribution
mainPanel(
uiOutput("tiledMaps")
)
)
)
server <- function(input, output) {
map.rv <- reactiveValues()
map.rv$count <- 0
map.rv$zoom <- 9
map.rv$ctrLng <- 174.768
map.rv$ctrLat <- -36.852
tileMap <- function(i) {
leaflet(paste0("map",i)) %>%
addTiles() %>%
setView(lng = map.rv$ctrLng,
lat = map.rv$ctrLat,
zoom = map.rv$zoom)
}
output$tiledMaps <- renderUI({
print(input$map1_zoom)
mapArray <- apply(as.array(1:input$mapCount), 1,
function(i){tileMap(i)})
sync(mapArray)
})
}
shinyApp(ui = ui, server = server)
这input$map1_zoom
是尝试应用在回答这个问题时给出的建议如何从 R/shiny 中的传单地图中获取缩放级别?但该值始终为 NULL。
有没有办法访问我正在寻找的位置和缩放级别?更好的是,也许我采取了一种不必要的复杂方法来解决我的问题,有人会提供一种更好、更清洁、更简单的方法来创建和显示我的地图。
解决方案
推荐阅读
- python - 从 numpy 数组创建表时,pyarrow 抛出 ArrowNotImplementedError
- java - 将日志记录添加到 Quarkus 中的所有 RestClient 调用
- paypal - 我可以在巴基斯坦使用 PayPal 和 2Checkout 集成来接收国际付款吗?
- php - Laravel 7 updateOrCreate 不起作用
- powershell - 在 Powershell 中查看 IIS URL 重写规则
- angular - Firebase Firestore 按顺序进行三元运算
- c# - 我需要能够在 Visual Studio 中的 C# 代码中执行 PowerShell 脚本
- java - 编写一个 Java 程序,求三个数的绝对值的第二个最小值
- r - 在 R 的 ifelse 语句中使用 setNames
- prestashop - Prestashop 1.7.7。结帐时出错