我试图使用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
是您的私钥,而不是名称。它可以使用工作钥匙。