R Leaflet ClickEvent无法找到layerId

时间:2019-11-06 11:07:42

标签: r shiny leaflet

我正在创建一个传单地图,以使用多边形显示地方议会的不同区域。我创建了一个闪亮的应用程序,用于渲染此传单输出并注册点击事件。这些点击事件将保存纬度,经度和ID,因此可以将它们与相同的数据框进行匹配并用于调用摘要统计信息:

即单击地图上的理事会区域x,它以字符串形式返回该单击事件的名称,然后将其用于从数据表中获取具有更广泛的汇总信息的匹配摘要统计信息。

我正在尝试根据输入信息为每个多边形分配唯一的ID,该ID为大空间多边形数据框的形式。

bins <- c(2000, 2500, 3000, 3500, 4000, 4500, 5000, Inf)
pal <- colorBin("YlOrRd", domain = map_data$rank, bins = bins)

# Plot mean SIMD rank for each council area
map <- leaflet(map_data) %>% 
  setView(-3.2008, 55.9452, 7) %>%
  addProviderTiles("CartoDB.Positron", 
                   options= providerTileOptions(opacity = 0.99)) %>% 
  addPolygons(fillColor = ~pal(rank),
              layerId = ~map_data$names, # Here is the layerId
              weight = 2,
              opacity = 1,
              color = "white",
              dashArray = "3",
              fillOpacity = 0.7,
              highlight = highlightOptions(
                weight = 2,
                color = "#666",
                dashArray = "",
                fillOpacity = 0.7,
                bringToFront = TRUE),
              label=~paste(map_data$names, 
                           round(map_data$rank)),
              labelOptions = labelOptions(textsize = "15px",
                                          direction = "auto"))

闪亮的服务器将此称为:

observeEvent(input$map_click, {

        click <- input$map_click

        print(click$id)
}

使用此方法,它可以将click事件的经时和时长输出到控制台,但ID的输出为NULL。

对此我感到困惑,因为调用data $ names对于标签来说效果很好,正如您在上面的函数中看到的那样。名称都是唯一的。

0 个答案:

没有答案