首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Shiny/Leaflet中选择和取消选择多段线

在Shiny/Leaflet中选择和取消选择多段线
EN

Stack Overflow用户
提问于 2017-08-30 14:46:48
回答 1查看 1.7K关注 0票数 2

我以劳伦的身份解决了我的问题。Changing styles when selecting and deselecting multiple polygons with Leaflet/Shiny唯一的区别是我使用多段线而不是多边形。我想点击多条多段线,并在再次单击时将其取消选中。但它不会work..it从表中删除重新选择的行,而不是从映射中删除,并且在从我选择的行中删除一行后,我不能再选择它。

有人能帮帮我吗?

Data

下面是我的代码:

代码语言:javascript
复制
library(shiny)
library(leaflet)
library(geojsonio)

url <- "pathTogeojson"

geojson <- geojsonio::geojson_read(url, what = "sp") 

shinyApp(
  ui <- fluidRow(
        leafletOutput("map")),

  server <- function(input, output, session) {

    click_list <- reactiveValues(ids = vector())  

    output$map <- renderLeaflet({
      leaflet() %>% 
        addTiles() %>% 
        setView(lng=16.357795000076294, lat=48.194883921677935, zoom = 15) %>%
        addPolylines(data=geojson, layerId = geojson@data$name_1, group = "selected", color="red", weight=3,opacity=1)
    })

    observeEvent(input$map_shape_click, {

      click <- input$map_shape_click
      proxy <- leafletProxy("map")
      click_list$ids <- c(click_list$ids, click$id)

      sel_lines <- geojson[geojson@data$name_1 %in% click_list$ids, ]

      if(click$id %in% sel_lines@data$id)
      {
        nameMatch <- sel_lines@data$name_1[sel_lines@data$id == click$id]
        click_list$ids <- click_list$ids[!click_list$ids %in% click$id] 
        click_list$ids <- click_list$ids[!click_list$ids %in% nameMatch]

        proxy %>% removeShape(layerId = click$id)
      }
      else
      {
        proxy %>% addPolylines(data = sel_lines, layerId = sel_lines@data$id, color="#6cb5bc", weight=5,opacity=1)
      }
    })
  })
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-31 20:10:24

我发现问题出在我的own..my数据和我的不理解上。它只在所有使用的列都是character...so类型时才起作用,我必须用as.character()进行类型转换

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45953741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档