【发布时间】:2020-12-28 06:39:41
【问题描述】:
我有一个时间序列点云,希望在 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 服务器或地理服务器的步骤实现了几乎相同的功能)
【问题讨论】:
-
一种选择是在 OpenLayers 中定义旋转投影,如 codepen.io/mike-000/pen/qBapaBa 和 codesandbox.io/s/reprojection-image-z0uit
-
@Mike 感谢您的建议!这种方法似乎正是我正在寻找的,我从未想过为其创建自定义投影。
标签: python python-imaging-library gis openlayers geopy