R 使发光传单识别从外部托管的JS文件创建的地图

R 使发光传单识别从外部托管的JS文件创建的地图,r,shiny,shinyjs,r-leaflet,R,Shiny,Shinyjs,R Leaflet,我想使用Shiny传单来渲染已经存在的传单贴图,但由于初始贴图是从外部托管(相当复杂)的JS文件创建的,我无法控制该文件,因此出现了问题 我似乎无法使传单图与R传单功能一起工作。也就是说,除了浏览器控制台打印“找不到id为mapid的地图”之外,什么也不会发生 因此,问题是: 如何使Shining传单识别从外部托管的JS文件在UI端创建的传单映射,以便可以从服务器端更改映射。 下面是一个简单的示例,其中使用JS在UI端创建传单地图。然后,应用程序(未成功)尝试从服务器端向地图添加新点: libr

我想使用Shiny传单来渲染已经存在的传单贴图,但由于初始贴图是从外部托管(相当复杂)的JS文件创建的,我无法控制该文件,因此出现了问题

我似乎无法使传单图与R传单功能一起工作。也就是说,除了浏览器控制台打印“找不到id为mapid的地图”之外,什么也不会发生

因此,问题是: 如何使Shining传单识别从外部托管的JS文件在UI端创建的传单映射,以便可以从服务器端更改映射。

下面是一个简单的示例,其中使用JS在UI端创建传单地图。然后,应用程序(未成功)尝试从服务器端向地图添加新点:

library(shiny)
library(leaflet)

ui <- fluidPage(
  # Load leaflet.js
  tags$head(HTML("

                 <link rel='stylesheet' href='https://unpkg.com/leaflet@1.2.0/dist/leaflet.css' integrity='sha512-M2wvCLH6DSRazYeZRIm1JnYyh22purTM+FDB5CsyxtQJYeKq83arPe5wgbNmcFXGqiSH2XR8dT/fJISVA1r/zQ==' crossorigin=''>
                 <script src='https://unpkg.com/leaflet@1.2.0/dist/leaflet.js' integrity='sha512-lInM/apFSqyy1o6s89K4iQUKg6ppXEgsVxT35HbzUupEVRh2Eu9Wdl4tHj7dZO0s1uvplcYGmt3498TtHq+log==' crossorigin=''></script> ")
  ),

  # Setup Map Container
  leafletOutput("mapid", height = "400px"),

  # Setup Base Map
  HTML(
    "
    <script>
    var mymap = L.map('mapid').setView([51.505, -0.09], 13);

    L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw', {
    maxZoom: 18,
    id: 'mapbox.streets'
    }).addTo(mymap);

    L.marker([51.5, -0.09]).addTo(mymap)
    .bindPopup('<b>Hello world!</b><br />I am a popup.').openPopup();
    </script>
    "
  ),

  br(),
  actionButton("recalc", "New points")
)


server <- function(input, output, session) {
  # Create Random Data Point
  points <- eventReactive(input$recalc, {
    cbind(rnorm(40) * 2 + 13, rnorm(40) + 48)
  }, ignoreNULL = FALSE)

  # When recalc is clicked add markers to map
  observeEvent(input$recalc,{
    leafletProxy("mapid", session) %>%
      addMarkers(data = points())
  })
}

shinyApp(ui, server)
库(闪亮)
图书馆(单张)
用户界面