问题描述
我有一个时间序列点云,希望在 Openlayers 上制作动画。需要注意的是,数据没有地理参考(即,我的 x 和 y 分别从 0-10 公里和 0-5 公里开始),用户需要定义起点(其中 x&y=0 的 lonlat)以及角度(标题)围绕起点旋转。
到目前为止,我的解决方案是
- 将点云逐帧栅格化到 png 文件的文件夹中(使用 matplotlib savefig)
- 按提供的角度旋转每个 png 文件
- 根据新维度扩展/收缩边界。 (第 2 步,这是使用 PIL 的旋转完成的)
- 数学计算新图像的 x&y=0 处的新 lonlat。 (地理)
- 创建一个rest api,以便我可以在openlayers中将每个图像帧作为图像源调用。 (烧瓶)
这是我的问题
- 是否可以在 openlayers 中旋转图像层? (这将消除我在服务器端旋转它的需要)
- 第 4 步似乎相当乏味,因为我需要计算 x&y 的偏移,将差值添加到原始 lonlat 以获得新的起点。是否有通常用于此目的的库或函数?
- 否则有没有更好的方法来实现我想要的? (我错过了一个更简单的解决方案吗?)
我尝试过的其他一些方法:
- 改为创建动画 gif。 (不喜欢这个解决方案,因为如果用户需要能够暂停或转到特定时间,它会引入更多的复杂性)
- 光栅化到 geotiff 图像文件夹而不是 png。 (Geotiff 比 PNG 大得多,并且实现了几乎相同的功能,但增加了必须设置 wms 服务器或地理服务器的步骤)
解决方法
您可以尝试使用 GeoImage 图层将图像放置在带有旋转的地图上。
见https://viglino.github.io/ol-ext/examples/layer/map.geoimage.html