将光栅堆栈投影为动画或 GIF 传单
Posted
技术标签:
【中文标题】将光栅堆栈投影为动画或 GIF 传单【英文标题】:Project Raster Stack as animation or GIF Leaflet 【发布时间】:2016-10-01 21:43:25 【问题描述】:有没有办法将光栅/图像作为动画投影到 Leaflet 上?
在 R raster 包中,我们可以使用:animate(rasters)
为栅格图层设置动画。您可以将其保存为 GIF 格式:saveGIF(animate(rasters))
。
但是我们如何将 GIF 投影到传单上呢?
我的解决方法是创建 PNG 文件
saveWidget(m, "temp.html")
webshot("temp.html", file = "filename.png"), cliprect = "viewport")
并创建一个 GIF:
im.convert(png_files, output = "output.gif")
我确信有很多其他的解决方法可以使用 javascript 和 CSS 来做到这一点,但我想知道是否可以在 R 中做到这一点而无需操作 Javascript 并且仍然拥有带有光栅动画的动态地图。
我被指示为此问题创建一个新问题,这有点不同: Create a gif from a series of Leaflet maps in R
【问题讨论】:
我不认为有一个开箱即用的解决方案,但mapview
提供了一些有趣的和改进的功能与raster
和rasterBrick
。我会继续思考制作 GIF 动画的简单方法。
【参考方案1】:
这是一种解决方法(在弹出窗口中显示动画.gif):
library(mapview)
gif <- "https://upload.wikimedia.org/wikipedia/commons/d/d6/MeanMonthlyP.gif"
viewExtent(kiliNDVI, fillOpacity = 0, opacity = 0,
popup = popupImage(gif, src = "remote")) + kiliNDVI[[1]]
viewExtent
基本上在 Raster* 对象周围绘制一个矩形。我们在地图上看不到它,因为我们让它透明。 popupImage()
允许您在弹出窗口中嵌入图像。如果您想要本地图像,请设置src = "local"
。
【讨论】:
popupImage
提供什么包?
mapview 1.1.0 版
感谢蒂姆,当我运行 mapview
和 popupImage
时出现此错误:Error: 'onRender' is not an exported object from 'namespace:htmlwidgets'
抱歉,我不知道这是从哪里来的,因为 1.popupImage
不使用 onRender
和 2.onRender
是从 namespace:htmlwidgets
导出的对象。也许更新你的包?
您可以设置width
和height
以像素为单位放大图像。但是弹出的 div 不会超过 300px。然而,这应该通过 leaflet 的一些下一个版本来解决(我希望如此)。有关如何在 mapview 中使用弹出功能的更多示例,请参阅environmentalinformatics-marburg.github.io/mapview/popups/html/…以上是关于将光栅堆栈投影为动画或 GIF 传单的主要内容,如果未能解决你的问题,请参考以下文章