При использовании карты листовок внутри перетаскиваемой панели Shiny (например, absolutePanel с draggable = T), панорамирование карты листовок с помощью мыши также перетаскивает панель Shiny.
Есть ли способ запретить панорамированию карты с помощью мыши также перемещать панель Shiny?
Я думаю, что это похоже на эту решенную проблему:
https://github.com/rstudio/shiny/issues/711
и в листовке есть функции событий DOM, связанные с распространением кликов.
Edit:
Это также происходит с графиками Plotly и может быть более общей проблемой, чем я изначально предполагал. Вопрос был отредактирован для включения сюжета.
Пример листовки:
library(leaflet)
library(shiny)
shinyApp(
ui = fluidPage(
absolutePanel(draggable=T, width='600px', wellPanel(
fluidRow(leafletOutput('map'))
))
),
server = function(input, output, session) {
output$map=renderLeaflet({
leaflet() %>%
addProviderTiles(providers$OpenStreetMap)
})
}
)
Установка опции перетаскивания на F в буклете решает проблему, но делает карту менее полезной.
shinyApp(
ui = fluidPage(
absolutePanel(draggable=T, width='600px', wellPanel(
fluidRow(leafletOutput('map'))
))
),
server = function(input, output, session) {
output$map=renderLeaflet({
leaflet(options=leafletOptions(dragging=F)) %>%
addProviderTiles(providers$OpenStreetMap)
})
}
)
Пример Plotly
Масштабирование, панорамирование и выбор сюжета - все это приводит к перемещению перетаскиваемой панели.
library(plotly)
library(shiny)
shinyApp(
ui = fluidPage(
absolutePanel(draggable=T, width='600px', wellPanel(
fluidRow(plotlyOutput('plot'))
))
),
server = function(input, output, session) {
output$plot=renderPlotly({
plot_ly(data=mtcars, type='scatter', mode='markers', x=~hp, y=~mpg, name=~cyl)
})
}
)