Блестящий обходной путь для данных flu sh из $ закончен при использовании EditMod в пакете mapEdit - PullRequest
0 голосов
/ 06 апреля 2020

Это кросспост со страницы github mapedit эмитентов здесь . Я пытаюсь создать блестящее приложение, которое позволяет пользователю отображать подмножество данных после выбора полигонов с помощью пакета mapedit. Хотя я могу успешно построить данные, используя mapedit, я не могу обработать sh данные $finished после удаления выбранных полигонов mapedit.

Это приводит к двум ошибкам, которые мне еще предстоит определить обходной путь для: 1) если график разрушается, как показано на рисунке ниже, ошибка the argument is of length zero, и 2) если график не разрушается, последние выбранные данные $finished остаются без возможности очистки данных из сюжет.

Можно ли что-нибудь сделать, чтобы решить эти проблемы? В первую очередь это происходит, когда более двух полигонов нарисованы, а затем удалены. Хотя я думал, что это будет реактивный обходной путь, я пока не добился успеха.

Ниже приведен воспроизводимый пример из r -atial blog mapedit - обновления в версии 0.2.0. В моем блестящем приложении я использую пакет mapedit для подмножества различных временных рядов с использованием идентификаторов объектов и построения графика временных рядов в виде графика. Я считаю, что основная проблема может быть решена с помощью воспроизводимого примера ниже.

library(sf)    
# make the coordinates a numeric matrix
qk_mx <- data.matrix(quakes[,2:1])
# convert the coordinates to a multipoint feature
qk_mp <- st_multipoint(qk_mx)
# convert the multipoint feature to sf
qk_sf <- st_sf(st_cast(st_sfc(qk_mp), "POINT"), quakes, crs=4326)

# run select demo for the quake data
#  we will need the qk_sf
#  to test
# plot(qk_sf)

library(mapedit)
library(mapview)
library(shiny)

ui <- fluidPage(
  fluidRow(
    # edit module ui
    column(6, editModUI("editor")),
    column(
      6,
      h3("Boxplot of Depth"),
      plotOutput("selectstat")
    )
  )
)
server <- function(input, output, session) {
  # edit module returns sf
  edits <- callModule(editMod, "editor", mapview(qk_sf)@map)

  output$selectstat <- renderPlot({
    req(edits()$finished)
    qk_intersect <- st_intersection(edits()$finished, qk_sf)
    req(nrow(qk_intersect) > 0) 
    boxplot(
      list(
        all = as.numeric(qk_sf$depth),
        selected = as.numeric(qk_intersect$depth)
      ),
      xlab = "depth"
    )
  })
}
shinyApp(ui, server)

Пример ошибки

Несмотря на то, что я опубликовал это, наряду с другими в mapedit github выпускает страницу и r-пространственные, я Я подумал, что стоит посмотреть, есть ли решение, которое не требует исправления пакета. Я нашел два обходных пути для selectMod здесь и здесь , но исходный код editMod гораздо более сложный, поэтому я нашел его вне моей способности адаптировать это решение.

Большое спасибо заранее, я изо всех сил пытался решить эту проблему в течение нескольких недель и хотел бы решить эту проблему и закрыть этот проект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...