我的 UI 输出中有一个 R-Shiny 应用程序和一张传单地图。我想设置一些东西,我可以右键单击地图,它会在光标坐标上打开一个上下文菜单,我可以在其中选择图标和输入文本。这将允许我在地图上放置自定义标记并命名它们。
observeEvent(input$map_right_click, {
showCustomMarkerMenu(location = (input$map_click$lat, input$map_click$lng)) //sample
addMarkers(lat = input$map_click$lat, lng = input$map_click$lng)
})
Run Code Online (Sandbox Code Playgroud)
您可以使用htmlwidgets::onRender和实现右键单击Shiny.setInputValue。可以htmlwidgets::onRender检索传单地图实例,您需要获取单击的坐标。接下来,Shiny.setInputValue您将坐标发送到闪亮的模块或应用程序,并触发您观察到的输入的更改事件observeEvent。
leaflet::leaflet() %>%
leaflet::addTiles() %>%
htmlwidgets::onRender("
function(el,x) {
map = this;
map.on('contextmenu', function(e) {
var coords = {lng: e.latlng.lng, lat: e.latlng.lat}
Shiny.setInputValue('map_right_click', coords);
});
}
")
shiny::observeEvent(input$map_right_click, {
output$myLng<- renderText({ input$map_right_click$lng })
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
513 次 |
| 最近记录: |