【问题标题】:R-Shiny Leaflet Right-Click Context MenuR-Shiny Leaflet 右键单击​​上下文菜单
【发布时间】:2022-03-31 18:32:15
【问题描述】:

我的 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)
})

【问题讨论】:

    标签: r shiny leaflet


    【解决方案1】:

    您可以使用htmlwidgets::onRenderShiny.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 })
    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-15
      • 2017-04-22
      • 1970-01-01
      相关资源
      最近更新 更多