2016-02-18 44 views
1

我想使用側邊欄創建地圖,您可以在其中選擇時間段的範圍。這個想法是,地圖只顯示在這段時間內打開的酒店的標記。我不知道這樣做,所以我嘗試使用selectInput,因爲它對我來說似乎更容易一些。但似乎我仍然無法完成工作。任何指導將不勝感激。使用單張/ Shiny的R中的交互式地圖

這裏的樣本數據幀:

Hotel Year lat  long 
    A 2000 41.886337 -87.628472 
    B 2005 41.88819 -87.635199 
    C 2010 41.891113 -87.63301 

這裏的ui.R:

#ui.R 
library(shiny) 
library(leaflet) 

shinyUI(fluidPage(
    titlePanel("Hotel Map"), 
    sidebarLayout(
    sidebarPanel(
     selectInput("year", 
        label = "Choose Year:", 
        choices = c(2000,2005,2010), 
        selected = 2000 
    )), 

    mainPanel (leafletOutput("map","100%",300)) 
) 
)) 

這裏的server.R:

library(shiny) 
library(leaflet) 
source("RStudio\\Map-app") 
hotels <- read.csv("RStudio\\Map-app\\ChicagoHotels.csv") 

shinyServer(
    function(input, output) { 

    output$map <- renderLeaflet({ 
    df <- hotels[hotels$Year == input$year,] 
    leaflet() %>% 
     addTiles() %>% 
     addCircles(data = df) 
    }) 

    } 
    ) 
+1

你有什麼代碼,使遠嗎? – alistaire

+0

SO不是代碼寫入服務。 SO上有很多例子,有傳單/閃亮 – MLavoie

+1

@alistaire&@ Mlavoie感謝您的意見。我修改了我的問題。如果你能提出任何建議,將非常感激。 – Yoshi

回答

2

@InfiniteFlashChess這是正確的。

Server.R

library(leaflet) 

hotels <- read.table(text = "Hotel Year latitude  longitude 
           A 2000 41.886337  -87.628472 
           B 2005 41.88819  -87.635199 
           C 2010 41.891113  -87.63301", 
        header = TRUE) 

shinyServer(function(input, output) { 

output$map <- renderLeaflet({ 
    df <- hotels[hotels$Year == input$year,] 
    leaflet() %>% 
    addTiles() %>% 
    addMarkers(data = df) 
}) 

}) 

Ui.R

library(shiny) 
library(leaflet) 

shinyUI(fluidPage(
titlePanel("Hotel Map"), 
sidebarLayout(
    sidebarPanel(
    selectInput("year", 
       label = "Choose Year:", 
       choices = c(2000,2005,2010), 
       selected = 2000 
)), 

mainPanel (leafletOutput("map","100%",300)) 

      ) 
)) 
+0

謝謝!這工作。我認爲源函數搞砸了。 – Yoshi

0

那麼首先,你的東西應該看看是不是主要面板首先要做的。 mainPanel中不參與

leafletMap("map","100%",300) 

它要求你輸入這個:

leafletOutput("map", "100%", 300) 

或其他一些相關leafletOuput聲明。

設計閃亮的方式,如果你想要輸出圖形或表格,你需要在server.R文件中創建輸出$ map對象,返回到ui.R,你的圖形將會只有基於特定輸出語句的輸出。

此頁面有示例和幫助。

Leaflet link you should really look at, so click me!

謝謝你把我介紹的方式單張,這比googleVis包的gvisGeoMap功能更好的工具。

+0

如果您在OP中發佈它,那麼對其他人來說更好。 – InfiniteFlashChess

+0

感謝您的意見。我仍然在學習如何避開。請參閱經修訂的OP,如果您能提出任何建議,將非常感激。 – Yoshi

+0

我已經相應地更新了我的答案。 – InfiniteFlashChess