我试图使用here可用的leaflet javascript库在Shiny应用程序的leaflet-openweathermap地图上添加自定义天气图块。我不熟悉javascript,地图也不渲染天气图层。

我首先下载了leaflet-openweathermap.js并将其放在应用程序路径的www/js文件夹中。然后,我注册了插件:

openWeatherPlugin <- htmlDependency(
  "Leaflet.OpenWeather",
  "1.6.0",
  src = normalizePath(path = getwd()),
  script = "www/js/leaflet.openweathermap.js"
)


要在传单上渲染天气图层,这是我尝试的方法:

leaflet() %>%
  addTiles() %>%
  registerPlugin(openWeatherPlugin) %>%
  onRender("
            function(el, x){
            L.OWM.clouds({showLegend: true, opacity: 0.5, appId: 'MY_APP_ID'})
            }
           ")


MY_APP_ID是从openweathermap.org获得的有效ID。
但是,以上代码无法生成所需的云天气层。我不熟悉javascript,也不知道这段代码有什么问题。请感谢一些帮助。

最佳答案

如果在.addTo(this);调用中添加onRender怎么办,例如:

  onRender("function(el, x){
          L.OWM.clouds({showLegend: true, opacity: 0.5, appId: 'MY_APP_ID'}).addTo(this);
        }
       ")


而javascript文件称为leaflet-openweathermap.js,而您已获得leaflet.openweathermap.js,或者是否已将连字符更改为某一点?

您的API密钥对我没有影响。因此,我认为该ID是无效的,因为我在控制台中收到了此味精。


  [HTTP / 1.1 401未经授权的99ms]


appId是您的私钥,而不是名称。

它可以使用工作钥匙。

javascript - R的Leaflet中的openweathermap天气图-LMLPHP

09-10 11:35