2016-11-25 56 views
0

查看了Shiny integration example on the Leaflet for R page后,我遇到了在我的闪亮应用中显示一些多边形以显示子集和显示问题。Leaflet/shiny:无法绘制反应性多边形

目前,我得到一个应用程序,与侧边栏,但主要的显示器是简单的“错误:不知道如何从类对象得到反应路径数据”

的想法是从GB(3个国家)中选择一个国家多边形并单独显示,具体取决于下拉选项;

require(shiny) 
require(rgdal) 
require(rgeos) 
require(leaflet) 

cont <- readOGR(".\\mypath\\mypolygons.shp", "mypolygons", stringsAsFactors=FALSE) 

ui <- fluidPage(

    titlePanel("My page"), 

    sidebarLayout(
    sidebarPanel(
     selectInput("countryInput", "Country:", choices = c('England','Scotland','Wales')) 
    ), 
    mainPanel(
     leafletOutput("mymap") 
    ) 
) 
) 

server <- function(input, output, session) { 

pols <- eventReactive(input$countryInput,{cont[substr([email protected]$code,1,1)==substr(input$countryInput,1,1),]}) 

    output$mymap <- renderLeaflet({ 
    leaflet() %>% 
     addProviderTiles("CartoDB.Positron") %>% 
     addPolygons(data = pols) 
    }) 
} 


shinyApp(ui, server) 

错误:

Warning: Error in polygonData.default: Don't know how to get path data from object of class reactive 
Stack trace (innermost first): 
    83: polygonData.default 
    82: polygonData 
    81: derivePolygons 
    80: addPolygons 
    79: function_list[[k]] 
    78: withVisible 
    77: freduce 
    76: _fseq 
    75: eval 
    74: eval 
    73: withVisible 
    72: %>% 
    71: func [#6] 
    70: output$mymap 
    4: <Anonymous> 
    3: do.call 
    2: print.shiny.appobj 
    1: <Promise> 
+0

“addPolygons系变量名后失踪的打开/关闭括号’你提供一个链接到你的形状文件?我没有看到一个,但我现在正在使用手机,而不是电脑。 –

+0

另外,你有没有工作的非闪亮的例子?如果你分享你的形状文件,这是我第一次尝试。 –

+0

嗨,对不起,我离开了几天,我设法修复代码,并会发布下面的答案,谢谢你的回应,虽然 – Sam

回答

0

修正:

首先我改变;

pols <- eventReactive(input$countryInput,{cont[substr([email protected]$code,1,1)==substr(input$countryInput,1,1),]}) 

to;

pols <- reactive({cont.sim[substr([email protected]$gssCode,1,1)==substr(input$countryInput,1,1),] 

和政客‘

addPolygons(data = pols) 

成为

addPolygons(data = pols())