Блестящее приложение: Leaflet DrawToolbar: невозможно удалить пользовательский интерфейс с карты, если условие не выполнено - PullRequest
0 голосов
/ 05 октября 2018

Я создал приложение, использующее пакет geoshaper, чтобы позволить пользователям выбирать объекты, найденные в многоугольнике, созданном с помощью плагина DrawToolbar.Однако, если пользователь создает многоугольник выбора до того, как данные будут пропущены через реактивные фильтры, он выдает ошибку с кодом ошибки: «Предупреждение. Ошибка в .local: невозможно получить координаты из нечисловой матрицы».

Я подумал, что было бы неплохо не отображать панель инструментов DrawToolbar, если не было выполнено условие, которое работает.Проблема в том, что когда условие затем удаляется, функция removeDrawToolbar не работает и не удаляется с карты.

Любая помощь будет оценена.

Код условия следующий:

observe({

if (!isTruthy(input$speccheck)){

  map <- leafletProxy("map")
  map %>% removeDrawToolbar(clearFeatures = TRUE)


} else {


map <- leafletProxy("map")
map %>% addDrawToolbar(
  position = "topright",
  targetGroup='Selected',
  polylineOptions=FALSE,
  markerOptions = FALSE,
  polygonOptions = drawPolygonOptions(shapeOptions=drawShapeOptions(fillOpacity = 0
                                                                    ,color = 'white'
                                                                    ,weight = 3)),
  rectangleOptions = drawRectangleOptions(shapeOptions=drawShapeOptions(fillOpacity = 0
                                                                        ,color = 'white'
                                                                        ,weight = 3)),
  circleOptions = drawCircleOptions(shapeOptions = drawShapeOptions(fillOpacity = 0
                                                                    ,color = 'white'
                                                                    ,weight = 3)),
  editOptions = editToolbarOptions(edit = FALSE, selectedPathOptions = selectedPathOptions()),
  singleFeature = TRUE)

}})
...