2016-06-13 137 views
1

我有一个Shiny App,它根据与邮政编码输入相关的经纬度在地图上插入一个圆圈。当我加载时地图呈现;但是,当我尝试通过selectInput对象更改邮政编码的值时,地图呈现一个空白窗口 - 即selectedZip变量。R输入改变后的闪亮传单地图圈子

任何解决这个问题帮助将不胜感激:

library(shiny) 
library(leaflet) 

# Data 
data <- read.csv('VENDOR_PERFORMANCE_EX.csv') 

ui <- fluidPage(
    titlePanel("VPD"), 
    sidebarLayout(
    sidebarPanel("Inputs"), 
    mainPanel("Results")), 
    selectInput("zipInput", "Select Zip Code", data$Zip), 
    selectInput("vendorInput", "Select Vendor", as.character(data$Vendor)), 
    leafletOutput("CLEmap", width = "75%", height = 600) 
) 

server <- function(input, output, session) { 
    selectedZip <- reactive({ 
     data[data$Zip == input$zipInput, ] 
    }) 
    output$CLEmap <- renderLeaflet({ 
     leaflet() %>% 
     addTiles() %>% 
     setView(-81.730844, 41.430102, zoom = 11) %>% 
     addCircles(data = selectedZip(), lng = ~ Y, lat = ~ X, radius = 1069) 
    }) 
} 

shinyApp(ui=ui, server = server) 

回答

1

这个工作,虽然有一些很奇怪的事情。虽然我无法确定它是否解决了您遇到的同一问题,因为我没有您的数据,但似乎很可能。

一旦我添加了数据,并得到了一些听起来像你的错误,我周围的一些猎物。我最终做出的唯一修改是在selectInput的实例中添加unique声明,我被selectInput未正确初始化的事实所证实,尽管它实际上并非初始值为空白。

我认为selectInput控件无法正确处理choices向量中的重复条目,并导致发光控件在某种程度上表现得很奇怪,从而破坏了......某种东西。不知道是什么。

奇怪。并不确定发生了什么。无论如何,这工作。如果你拿出unique它确实不工作并得到一个像你所描述的错误。

的代码:

library(shiny) 
library(leaflet) 

# Data 
#data <- read.csv('VENDOR_PERFORMANCE_EX.csv') 

data <- data.frame(Zip=c("44102","44102","44109"), 
        Vendor=c("Vendor1","Vendor2","vendor3"), 
        X=c(41.475,41.477,41.467),Y=c(-81.742,-81.748,-81.697)) 

ui <- fluidPage(
    titlePanel("VPD"), 
    sidebarLayout(
    sidebarPanel("Inputs"), 
    mainPanel("Results")), 
    selectInput("vendorInput", "Select Vendor", as.character(data$Vendor)), 
    selectInput("zipInput", "Select Zip Code", unique(as.character(data$Zip))), 
    leafletOutput("CLEmap", width = "75%", height = 600) 
) 

server <- function(input, output, session) { 
    selectedZips <- reactive({ 
    data[data$Zip == input$zipInput, ] 
    }) 
    output$CLEmap <- renderLeaflet({ 
    leaflet() %>% 
     addTiles() %>% 
     setView(-81.730844, 41.430102, zoom = 11) %>% 
     addCircles(data=selectedZips(),lng = ~Y, lat = ~X,radius = 300) 
    }) 
} 

shinyApp(ui=ui, server = server) 

输出:

enter image description here

+0

注意,固定这是导致它错误输出一个错字。 –

+0

令人敬畏的建议 - 非常棒!我添加了一个observeEvent()对象来让它在临时工作,但它并不像我想要的那样工作。我非常感谢你对此的见解。 –