r - Leaflet / Shiny中的反应性过滤器产生不正确的结果
问题描述
我正在使用 Leaflet 和 Shiny 制作地图,但在我的代码的反应部分出现问题。
我想使用下拉过滤器来选择特定区域内的点。目前,以下代码过滤器指向正确的区域,但是 - 奇怪的是 - 它们不是应该存在的点。
例如,如果我选择区域 1,则仅显示区域 1 中的点,但它们是地图各处的点,实际上不应该位于区域 1 中。
我已经确定了我认为下面有问题的部分,我将非常感谢任何评论。谢谢!
library(leaflet)
library(shiny)
library(dplyr)
dairypoints <- read.csv("Data dairies.csv")
rdmareas <- readOGR("The New Dairy Areas.shp")
ui <- fluidPage(
titlePanel("Search Dairy Producers in the UK by Area"),
selectInput("dropdown", "Select Area", choices = c(dairypoints$area), multiple = FALSE),
leafletOutput("dairypointsmap", height = 1000, width= 1000)
)
pal <- colorFactor(c("blue", "black"), domain = c("Dairy Farm", "RDM Farm"))
#I think it's this section (next 3 lines) that's causing the problem
server <- function(input, output){
filtered <- reactive({
dairypoints %>% filter(dairypoints$area==input$dropdown)
})
output$dairypointsmap <- renderLeaflet({
dairypointsmap <- leaflet(filtered()) %>%
setView(lng = -2.916976, lat = 54.815864, zoom = 6) %>%
addTiles() %>%
addLegend("topright", pal = pal, values = ~Type) %>%
addPolygons(data = rdmareas,
stroke = TRUE, fillOpacity = 0,
smoothFactor = 0.1, color = "black", opacity = 1, weight = 1) %>%
addCircleMarkers(
radius = 4,
color = ~pal(dairypoints$Type),
stroke = FALSE, fillOpacity = 1,
popup = paste("Name", dairypoints$Name, "<br>",
"Producer ID", dairypoints$ProducerID, "<br>",
"Area Number", dairypoints$area, "<br>",
"Post Code", dairypoints$Postcode, "<br>",
"CPH", dairypoints$CPH, "<br>",
"Farm Type", dairypoints$Type))
})
options(shiny.sanitize.errors = FALSE)
}
shinyApp(ui = ui, server = server)
解决方案
推荐阅读
- ios - 一个 UITableView 单元格中的两个 UICollection 视图
- python - Python 无法从 bazel git_repository() 依赖项导入包
- rest - 删除所有项目的宁静方式
- r - 尽管设置了组美学,但无法创建将配对数据点与 ggplot2 链接的线
- sql - MariaDB触发器加入两个表?
- parsing - 如何从单词列表中制作 Haskell 解析器?
- tensorflow - 使用不可训练的权重是否等同于在 TensorFlow 中使用 Python 变量?
- ember.js - EmberJS:依赖键的计算属性意识
- html - DIV 在容器中并排
- java - 如何根据 Java 中的格式控制从 JSON 获取的数据?