2016-11-25 3 views
0

Просмотрев Shiny integration example on the Leaflet for R page, у меня возникли проблемы с подмножеством и отображением некоторых полигонов для отображения в моем блестящем приложении.Листовки/блестящие: нельзя рисовать реактивные полигоны

На данный момент я получаю приложение, с боковой панелью, но главный дисплей просто «Ошибка: Не знает, как получить данные о пути от объекта класса реактивного»

Идея заключается в том, чтобы выбрать многоугольник страны из 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

ли вы предоставить ссылку на файл формы? Я не вижу этого, но сейчас я нахожусь на своем телефоне, а не на компьютере. –

+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 линия отсутствует открывающаяся/закрывающаяся скобки после имени переменной 'Pols'

addPolygons(data = pols) 

становится

addPolygons(data = pols()) 
Смежные вопросы