如何将传单地图(使用RMAP创建)保存为html小部件?
问题1 我尝试将使用RMAP创建的传单地图保存到html文件中如何将传单地图(使用RMAP创建)保存为html小部件?,r,leaflet,htmlwidgets,rmaps,R,Leaflet,Htmlwidgets,Rmaps,问题1 我尝试将使用RMAP创建的传单地图保存到html文件中 L2 <- Leaflet$new() L2$setView(c(29.7632836, -95.3632715), 10) L2$tileLayer(provider = "MapQuestOpen.OSM") L2 library(htmlwidgets) saveWidget(L2,"t.html") 答案1 多亏了LukeA,我们可以使用这种合成税: leaflet(width = "100%") %>%
L2 <- Leaflet$new()
L2$setView(c(29.7632836, -95.3632715), 10)
L2$tileLayer(provider = "MapQuestOpen.OSM")
L2
library(htmlwidgets)
saveWidget(L2,"t.html")
答案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
#添加传单加热插件。感谢弗拉基米尔·阿加方金
L2$addAssets(jshead=c(
"http://leaflet.github.io/Leaflet.heat/dist/leaflet-heat.js"
))
#添加javascript以修改基础图表
L2$setTemplate(afterScript=sprintf(“
var addressPoints=%s
var heat=L.heatLayer(地址点).添加到(地图)
,rjson::toJSON(犯罪数据)
))
L2
答案2
再次感谢卢卡,我们得到了答案:
L2$save(tf <- tempfile(fileext = ".html"),standalone=TRUE)
L2$save(tf虽然不是对您的问题的直接回答,但我建议另一种方法可以产生类似的结果:
library(leaflet)
library(htmlwidgets)
leaflet() %>%
addProviderTiles("MapQuestOpen.OSM") %>%
setView(-95.3632715, 29.7632836, zoom = 10) -> m
saveWidget(m, tf <- tempfile(fileext = ".html"))
虽然不是对你问题的直接回答,但我建议另一种方法可以产生类似的结果:
library(leaflet)
library(htmlwidgets)
leaflet() %>%
addProviderTiles("MapQuestOpen.OSM") %>%
setView(-95.3632715, 29.7632836, zoom = 10) -> m
saveWidget(m, tf <- tempfile(fileext = ".html"))
太好了!谢谢。事实上,我想用这种方式编写Leavet,并添加传单(width=“100%”)。然后当我尝试传单$new(width=“100%”)时,它就不起作用了。所以我想知道参数width是否从此留在函数中。如果是,如何“重新初始化”传单地图?和rmaps示例中,添加了额外的功能。如何使用管道?L2$addAssets(jshead=c(“”)和L2$setTemplate()您可以在传单()
中设置宽度,例如传单(width=“50%”)
。关于一些“额外功能”(?)-请通过“额外功能”浏览,我指的是RMAP示例中的那些:addAssets和setTemplate。它们不在传单主页中。我不知道如何在传单包中嵌入传单.heat。可能会发布新问题,或者直接询问包作者?或者使用自定义和静态预计算轮廓?我只是研究了github发行的传单
:to满足您的需求。太好了!谢谢。事实上,我想用这种方式编写Leavet,并添加传单(width=“100%”)。然后当我尝试传单$new(width=“100%”)时,它就不起作用了。因此我想知道参数width是否从此留在函数中。如果是,如何“重新初始化”传单地图?和rmaps示例中,添加了额外的功能。如何使用管道?L2$addAssets(jshead=c(“”)和L2$setTemplate()您可以在传单()
中设置宽度,例如传单(width=“50%”)
。关于一些“额外功能”(?)-请通过“额外功能”浏览,我指的是RMAP示例中的那些:addAssets和setTemplate。它们不在传单主页中。我不知道如何在传单包中嵌入传单.heat。可能会发布新问题,或者直接询问包作者?或者使用自定义和静态预计算轮廓?我只是研究了github发行的传单
:to满足您的需求。
library(plyr)
library(rCharts)
library(rMaps)
data(crime, package = 'ggmap')
crime_dat = ddply(crime, .(lat, lon), summarise, count = length(address))
crime_dat = toJSONArray(na.omit(unname(crime_dat)), json = F)
L2 <- Leaflet$new()
L2$setView(c(29.7632836, -95.3632715), 10)
L2$tileLayer(provider = "MapQuestOpen.OSM")
# 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$save(tf <- tempfile(fileext = ".html"),standalone=TRUE)