【发布时间】: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