2016-06-13 14 views
1

郵便番号入力に関連付けられた緯度経度に基づいて地図上に円を挿入するShiny Appがあります。地図をロードすると地図がレンダリングされます。しかし、selectInputオブジェクトを介して郵便番号の値を変更しようとすると、マップは空白のウィンドウ、つまりselectedZip変数をレンダリングします。R Shinyリーフレットマップサークルの変更後

この問題に対処するすべてのヘルプは理解されるであろう。

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

これは動作しますが、起こって非常に奇妙な何かがありますが。私はあなたのデータを持っていないので、あなたが持っているのと同じ問題を解決できるかどうかは確かではありませんが、それはおそらくそうです。

データを追加してエラーのように聞こえるものがあったら、私はちょっと狩りました。私が最後に行った唯一の変更は、zipInputインスタンスにインスタンスにuniqueステートメントを追加することです。実際には初期値以外は空白になっていますが、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()オブジェクトを追加して暫定的に動作させましたが、私が望むように振る舞いませんでした。私は本当にこれについてのあなたの洞察に感謝します。 –

関連する問題