【发布时间】:2017-10-15 19:23:05
【问题描述】:
我正在尝试根据 Leaflet 中的图层组和 Shiny 中 R 的 Leaflet extras 显示 WMS 图例。我正在使用here 描述的 input$map_groups 但它似乎不起作用,关于如何隐藏和切换 WMS 图例的任何想法?
谢谢,
胡安
library(shiny)
library(leaflet)
library(leaflet.extras)
# User Interface
ui <- bootstrapPage(
tags$style(type="text/css", "html, body {width:100%;height:100%}"),
leafletOutput("map", width="100%", height="100%")
)
##### Shiny function server side
server = function(input, output, session) {
output$map <- renderLeaflet({
leaflet() %>%
addProviderTiles("CartoDB.DarkMatter", options = tileOptions(minZoom = 0))%>%
addTiles(urlTemplate ="http://dataportal-dev.aquacross.eu/geoserver/gwc/service/tms/1.0.0/general:g2015_simplified@EPSG:900913@png/{z}/{x}/{y}.png",
options = tileOptions(noWrap = TRUE, tms = TRUE, opacity =0.9),group ="P1", layerId ="test")%>%
addTiles(urlTemplate ="http://dataportal-dev.aquacross.eu/geoserver/gwc/service/tms/1.0.0/general:country@EPSG:900913@png/{z}/{x}/{y}.png",
options = tileOptions(noWrap = TRUE, tms = TRUE, opacity =1),group ="P2", layerId ="test2")%>%
# addWMSLegend(position = "topright",uri='http://dataportal-dev.aquacross.eu/geoserver/wms?REQUEST=GetLegendGraphic&VERSION=1.0.0&FORMAT=image/png&WIDTH=50&HEIGHT=20&LAYER=g2015_simplified', layerId ="test")%>%
addLayersControl(
baseGroups = c("P1", "P2"),
options = layersControlOptions(collapsed =FALSE)
)
})
## This is an attempt to show WMS legend maps based in groups
observeEvent(input$map_groups,{
map <- leafletProxy("map") %>% clearControls()
if (input$map_groups == 'P1')
{
map %>% addWMSLegend(position = "topright",uri='http://dataportal-dev.aquacross.eu/geoserver/wms?REQUEST=GetLegendGraphic&VERSION=1.0.0&FORMAT=image/png&WIDTH=20&HEIGHT=50&LAYER=g2015_simplified', layerId ="test")
}
else if (input$map_groups == 'P2')
{
map %>% addWMSLegend(position = "topright",uri='http://dataportal-dev.aquacross.eu/geoserver/wms?REQUEST=GetLegendGraphic&VERSION=1.0.0&FORMAT=image/png&WIDTH=20&HEIGHT=20&LAYER=topp:states', layerId ="test2")
}
})
}
shinyApp(ui, server)
【问题讨论】:
-
能否具体说明您的问题?
-
这个想法是根据图层组隐藏和切换 WMS 图例,但我找不到这样做的方法..
-
P1 和 P2 按钮的预期效果是什么?
-
我刚刚编辑了代码,想法是根据P1和P2显示不同的WMS图例。
标签: r shiny leaflet legend wms