是否可以在 Openlayers 上旋转图像层?

问题描述

我有一个时间序列点云,希望在 Openlayers 上制作动画。需要注意的是,数据没有地理参考(即,我的 x 和 y 分别从 0-10 公里和 0-5 公里开始),用户需要定义起点(其中 x&y=0 的 lonlat)以及角度(标题)围绕起点旋转。

到目前为止,我的解决方案是

  1. 将点云逐帧栅格化到 png 文件文件夹中(使用 matplotlib savefig
  2. 按提供的角度旋转每个 png 文件
  3. 根据新维度扩展/收缩边界。 (第 2 步,这是使用 PIL 的旋转完成的)
  4. 数学计算新图像的 x&y=0 处的新 lonlat。 (地理)
  5. 创建一个rest api,以便我可以在openlayers中将每个图像帧作为图像源调用。 (烧瓶)

这是我的问题

  1. 是否可以在 openlayers 中旋转图像层? (这将消除我在服务器端旋转它的需要)
  2. 第 4 步似乎相当乏味,因为我需要计算 x&y 的偏移,将差值添加到原始 lonlat 以获得新的起点。是否有通常用于此目的的库或函数
  3. 否则有没有更好的方法来实现我想要的? (我错过了一个更简单的解决方案吗?)

我尝试过的其他一些方法

  1. 改为创建动画 gif。 (不喜欢这个解决方案,因为如果用户需要能够暂停或转到特定时间,它会引入更多的复杂性)
  2. 光栅化到 geotiff 图像文件夹而不是 png。 (Geotiff 比 PNG 大得多,并且实现了几乎相同的功能,但增加了必须设置 wms 服务器或地理服务器的步骤)

解决方法

您可以尝试使用 GeoImage 图层将图像放置在带有旋转的地图上。
https://viglino.github.io/ol-ext/examples/layer/map.geoimage.html

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...