我有一个leaflet
映射,我希望从映射的A值切换为B的选项。我能找到的每个示例都说使用shiny
和{{1} },所有这些示例都包含以下内容:
leaflet
但我不断收到错误消息
leafletProxy(或leafletOutput)不存在
。我该如何解决?我的传单是用:
创建的ui <- fluidPage(
selectInput(inputId = "Data",
label = "Data",
choices = c("A","B"),
leafletProxy(outputId = "map") #or leafletOutput
))
答案 0 :(得分:0)
从您的示例看来,您的shiny
没有server
功能,因此它将无法正常工作。
请,找到一个可以在其上开始构建的模拟闪亮对象:
图书馆(闪亮) 图书馆(传单)
ui <- fluidPage(
selectInput(inputId = "Data",
label = "Data",
choices = c("A","B")),
leafletOutput("map")
)
server <- server <- function(input, output, session) {
output$map=renderLeaflet({
if((input$Data) == "A"){
point = c(42.6525, -73.757222)
}
if((input$Data) == "B"){
point = c(39.283333, -76.616667)
}
leaflet() %>%
addProviderTiles("OpenStreetMap.Mapnik") %>%
addMarkers(lat=point[1], lng=point[2])
})
当您选择“ A”时,它将显示“ Albany”,而当您选择“ B”时,它将显示巴尔的摩
基本上:
ui
是一种“界面”,将显示如下内容:
selectInput
:您可以在此处选择A或B
leafletOutput
:将显示传单地图
server
将在您使用selecInput
时完成创建地图和计算动作的“艰巨任务”:
output$map
意味着我们要绘制leafletOuput
(这就是为什么它是调用映射的原因,如leafletOutput("map")
然后,根据选择的输入(A或B)
if((input$Data) == "A"){
point = c(42.6525, -73.757222)
}
if((input$Data) == "B"){
point = c(39.283333, -76.616667)
}
我们将奥尔巴尼或巴尔的摩的坐标分配给点。 最后,我们构建地图:
leaflet() %>%
addProviderTiles("OpenStreetMap.Mapnik") %>%
addMarkers(lat=point[1], lng=point[2])
请考虑到这是一种模拟的光泽,它远非完美,只是说明性的。
最好!