質問 1 rMaps hereで作成したリーフレット マップを html ファイルに保存しようとしています。
L2 <- Leaflet$new()
L2$setView(c(29.7632836, -95.3632715), 10)
L2$tileLayer(provider = "MapQuestOpen.OSM")
L2
library(htmlwidgets)
saveWidget(L2,"t.html")
しかし、エラーが発生しました:
Error in envRefInferField(x, what, getClass(class(x)), selfEnv) :
‘width’ is not a valid field or method name for reference class “Leaflet”
回答 1 LukeA のおかげで、次の構文を使用できます。
leaflet(width = "100%") %>%
addProviderTiles("MapQuestOpen.OSM") %>%
setView(-95.3632715, 29.7632836, zoom = 10) -> L2
質問 2 では、addAssets と setTemplate を追加する方法:
# Add leaflet-heat plugin. Thanks to Vladimir Agafonkin
L2$addAssets(jshead = c(
"http://leaflet.github.io/Leaflet.heat/dist/leaflet-heat.js"
))
# Add javascript to modify underlying chart
L2$setTemplate(afterScript = sprintf("
<script>
var addressPoints = %s
var heat = L.heatLayer(addressPoints).addTo(map)
</script>
", rjson::toJSON(crime_dat)
))
L2
回答 2 繰り返しますが、LukeA のおかげで、回答が得られました。
L2$save(tf <- tempfile(fileext = ".html"),standalone=TRUE)
質問 3
実際、私の最初の問題は、HTML ドキュメントでマップを直接生成するために、rmarkdown でコードを記述できないことです。
これで、マップを単独で保存できます。しかし、それをhtmlドキュメントに統合する方法は? 迅速な解決策は、iframe を作成することです。他のよりエレガントなソリューションはありますか?