我想建立一个闪亮的应用程序,当鼠标悬停在形状/圆上时,弹出窗口而不是标准点击。
特别地,我试图让弹出窗口在鼠标悬停时显示...并且当鼠标移开时消失。
此页面(https://rstudio.github.io/leaflet/shiny.html)会建议我需要像
但不确定在哪里输入它或如何使用它,所以任何帮助将不胜感激。
以下是一个简单的随机示例...
特别地,我试图让弹出窗口在鼠标悬停时显示...并且当鼠标移开时消失。
此页面(https://rstudio.github.io/leaflet/shiny.html)会建议我需要像
observeEvent({input$mymap_shape_mouseover},{showPopup()})
这样的东西。但不确定在哪里输入它或如何使用它,所以任何帮助将不胜感激。
以下是一个简单的随机示例...
library(shiny)
library(leaflet)
library(data.table)
uu <- data.table(row_num=seq(100),
Latitude=c(52+cumsum(runif(100,-0.001,0.001))),
Longitude=c(1+cumsum(runif(100,-0.001,0.001)))
)
ui <- fluidPage(
leafletOutput("mymap")
)
server <- function(input, output, session) {
output$mymap <- renderLeaflet({
leaflet() %>%
addTiles() %>%
addCircles(lng=uu$Longitude,
lat=uu$Latitude,
radius=2)
})
# Show a popup at the given location
show_popup_on_mouseover <- function(id, lat, lng) {
selected_point <- uu[row_num == id,]
content <- as.character(selected_point$row_num)
leafletProxy("mymap") %>%
addPopups(lng, lat, content)
}
# When circle is hovered over...show a popup
observe({
leafletProxy("mymap") %>% clearPopups()
event <- input$mymap_shape_mouseover
print(event)
if (is.null(event)){
return()
} else {
isolate({
show_popup_on_mouseover(event$id, event$lat, event$lng)
})
}
})
}
shinyApp(ui, server)