我有一个flexdashboard( .rmd 文件),其中有一个地图(多边形地图)。地图的数据源是ArcGIS shapefile。我能够使用 Shiny leaflet 在地图上制作Choropleths。除此之外,我还想在每次点击地图中的一个时突出显示一个多边形(突出显示多边形的板)。此外,显示点击多边形数据分布的条形图将显示在仪表板的右侧。但是,我无法突出显示多边形。当我点击闪亮的传单中的输入$ map_shape_click 时,多边形没有突出显示。请参阅下面的 R 代码。
library(shiny)
library(flexdashboard)
library(plotly)
library(dplyr)
library(rgdal)
library(sp)
library(leaflet)
library(shiny)
CNT <- readOGR(dsn=path.expand("./ABC_Polygon"),layer="CNT10_ABM", GDAL1_integer64_policy = TRUE)
df_travel <- read.csv("./CNT_trip.csv")
CNT_Trip <- df_travel %>%
group_by(origcnt) %>%
summarise(cnttrips=n())
cnt_mdata <- merge(CNT,CNT_Trip, by.x="CNT10", by.y="origcnt")
TAZ Level Travel
======================================================================
Column {data-width=650}
---------------------------------------------------------------------
### County trip map
```{r}
bins <- c(0, 50, 100, 300, 600, 1000, 2000, 5000, Inf)
pal <- colorBin("YlOrRd", domain = cnt_mdata$cnttrips, bins = bins)
renderLeaflet({
map <- leaflet(cnt_mdata)%>%
addProviderTiles("CartoDB.Positron")%>%
addPolygons(
fillColor = ~pal(cnttrips),
weight=0.1,
opacity = 1,
fillOpacity = 0.7,
layerId = cnt_mdata$CNT10)%>%
addLegend(position = 'bottomright', pal = pal,
values = cnt_mdata$cnttrips, title = 'Number of Trips')
})
click_cnt <- eventReactive(input$map_shape_click, {
x <- input$map_shape_click
y <- x$id
return(y)
})
observe({
req(click_cnt()) # do this if click_cnt() is not null
# Add the clicked cnt to the map in aqua, and remove when a new one
# is clicked
map <- leafletProxy('map') %>%
removeShape('selected') %>%
addPolygons(data = cnt_mdata[cnt_mdata$CNT10 == click_cnt(), ],
fillcolor = FALSE,
color = '#00FFFF', opacity = 1, layerId = 'selected')
})
# taz_data <- reactive({
#
# # Fetch data for the clicked tract
# return(df_travel[df_travel$origcnt == click_cnt(), ])
#
# })
leafletOutput('map')
```
CNT10 是数据 cnt_mdata 和 CNT 文件中多边形的数字指示符。 origcnt 也是数据文件 CNT_Trip 和 df_travel 中多边形的数字指示符。我在控制台中运行了上面的代码块,没有显示任何错误和警告。但是,当我通过单击RStudio中的“运行文档”运行 .rmd 文件时,它确实显示了等值区域图。但是当我点击多边形时,没有任何东西出现。我无法找出我的代码有什么问题。