2016-06-13 86 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()對象來讓它在臨時工作,但它並不像我想要的那樣工作。我非常感謝你對此的見解。 –