r-spatial/leafem

addImageQuery does not work with leafletProxy()

Closed this issue · 0 comments

addImageQuery only works when I initially generate the map (see code block 1). However, the map is first generated and then modified with leafletProxy to add the raster and image query, the raster is added to the map but the query does not work (see code block 2).

Code block 1 (addImageQuery works):

library(leaflet)
library(plainview)
library(leafem)
library(shiny)

ui <- fluidPage(
  fluidRow(
    leafletOutput("map")
  )
)

server <- function(input, output) {
  output$map <- renderLeaflet({
    leaflet() %>%
      addProviderTiles("OpenStreetMap") %>%
      addRasterImage(poppendorf[[1]], project = TRUE, group = "poppendorf",
                     layerId = "poppendorf") %>%
      addImageQuery(poppendorf[[1]], project = TRUE,
                            layerId = "poppendorf",position="bottomleft",prefix = "") %>%
      addLayersControl(overlayGroups = "poppendorf")
  })
}

shinyApp(ui, server)

Code block 2 (raster added on click, addImageQuery does not work):

library(leaflet)
library(plainview)
library(leafem)
library(shiny)

ui <- fluidPage(
  fluidRow(
    leafletOutput("map")
  )
)

server <- function(input, output) {
  output$map <- renderLeaflet({
    leaflet() %>%
      addProviderTiles("OpenStreetMap") %>%
      setView(11.2,49.73,12)
  })

  counter <- reactiveValues(
    counter = 0
  )

  observeEvent(input$map_click,{
    counter$counter <- counter$counter + 1
    if (counter$counter == 1) {
      leafletProxy("map") %>%
        addRasterImage(poppendorf[[1]], project = TRUE, group = "poppendorf",
                       layerId = "poppendorf") %>%
        addImageQuery(poppendorf[[1]], project = TRUE,
                      layerId = "poppendorf",position="bottomleft",prefix = "") %>%
        addLayersControl(overlayGroups = "poppendorf")

    }
  })
}

shinyApp(ui, server)

Does anyone know a way to get the addImageQuery function to work with a leafletProxy call?