gpt4 book ai didi

r - 在 R 传单中标记鼠标单击事件以获得 Shiny 效果

转载 作者:行者123 更新时间:2023-12-03 01:26:03 25 4
gpt4 key购买 nike

如何在 R 中的传单 map 中的标记上接收鼠标单击事件?我正在使用 RStudio/传单并通过 Shiny 运行。

我想获取标记的值(例如 ID)并使用它来更新侧边栏面板。

最佳答案

您想使用input$MAPID_marker_click 。请参阅下面的示例。

library(shiny)
library(leaflet)

latitude <- c(35.94077, 35.83770, 35.84545, 35.81584, 35.79387, 36.05600)
longitude <- c(-78.58010, -78.78084, -78.72444, -78.62568, -78.64262, -78.67600)
radius<-c(15, 12, 12, 12, 12, 15)
ids<-c("a", "b", "c", "d", "e", "f")

shinyApp(
ui = fluidPage(
fluidRow(
leafletMap(
"map", "100%", 400,
initialTileLayer = "//{s}.tiles.mapbox.com/v3/jcheng.map-5ebohr46/{z}/{x}/{y}.png",
initialTileLayerAttribution = HTML('Maps by <a href="http://www.mapbox.com/">Mapbox</a>'),
options=list(
center = c(37.45, -93.85),
zoom = 4,
maxBounds = list(list(17, -180), list(59, 180))))),
fluidRow(verbatimTextOutput("Click_text"))),
server = function(input, output, session){
map = createLeafletMap(session, 'map')
session$onFlushed(once=T, function(){

map$addCircleMarker(lat = latitude,
lng = longitude,
radius = radius,
layerId=ids)
})

observe({
click<-input$map_marker_click
if(is.null(click))
return()
text<-paste("Lattitude ", click$lat, "Longtitude ", click$lng)
text2<-paste("You've selected point ", click$id)
map$clearPopups()
map$showPopup( click$lat, click$lng, text)
output$Click_text<-renderText({
text2
})

})

}
)

论点layerIdaddCircleMarker函数传递 idsclick$id .

关于r - 在 R 传单中标记鼠标单击事件以获得 Shiny 效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28938642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com