【问题标题】:Static image positioned far north gets stretched位于最北端的静态图像被拉伸
【发布时间】:2020-04-02 15:05:21
【问题描述】:

在我们的应用程序中,我们有一个后端,它对地图的某个区域进行一些光栅处理,并将图像发送回基于 OL 的前端,该前端将图像插入指定范围。

要处理的多边形作为 GeoJSON-coords (EPSG:4326) 发送到后端,然后将多边形转换为矩形投影(在本例中为 EPSG:3035),进行处理并将热图结果发送回前端作为 PNG 编码的图像,在服务器端重新投影到 EPSG:3857(以匹配我们基于 OSM 的背景图的投影)。然后使用 ImageStatic 对象将图像插入到 ImageLayer 中,其范围由后端计算(转换为 EPSG:3857 的图像的 EPSG:3035 转换边界框)。

这很好用,但斯堪的纳维亚半岛最北部的多边形除外。例如,在 EPSG:3857 中范围为 [1684632.9133543067,9544855.787615912,2902401.684702249,10831736.048522325] 的图像添加到地图时,将通过以下方式可视化:

理想的结果是图像遵循阴影多边形的东南边界。相反,它向东北倾斜并延伸。

我将非常感谢任何关于为什么这没有按预期工作的想法和指示。

【问题讨论】:

  • 能否请附上相关的geotools代码,以及添加地图的javascript
  • 如果图像在 EPSG:3035 投影中,则应使用该投影和范围进行定义,并由 OpenLayers 重新投影,类似于此示例中的 EPSG:27700 图像openlayers.org/en/latest/examples/reprojection-image.html
  • 现在我们将图像重新投影到 EPSG:3857 服务器端,因此范围在 EPSG:3857 中指定。我们曾经使用客户端重新投影,但由于它看起来更准确而切换到服务器端。尽管@IanTurton 有相当多的代码,但我可以看看是否可以尝试重现应该相关部分的精简版本。
  • 最可能的问题是您使用的 3857 太北了
  • @IanTurton 嗯。 3857 不应该在 85.06°N 以下有效吗? OSM 背景图在 3857 投影中,在这个区域看起来“OK”?

标签: gis openlayers geotools openlayers-6


【解决方案1】:

我通过尽可能多地裁剪要重新投影的图像来解决这个问题。然后,生成的包络要小得多,从而消除了失真。感谢@Ian 的提示!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多