从 WMS 图层正确导出 PNG(BBOX 问题)。 Openlayers如何重新计算bbox?

问题描述 投票:0回答:1

我有一个地理服务器,并使用带有

GetMap
的 WMS
format=image/png
请求从 wms 层导出图像,我得到了一个拉伸图像,即 IMG 1:

Text

通过使用与

format=application/openlayers
相同的 WMS 层,OpenLayers 库更改/适合该层的 bbox,获得正确的图像(未拉伸),即 IMG 2:

Text

WMS 请求一和二之间的唯一区别是(输出)格式(请求的所有其他参数

srs
width
height
等都是相同的)。 OpenLayers 重新计算一个新的 bbox 以可视化正确的图像,执行此操作的算法是什么?

谢谢。

openlayers geoserver wms
1个回答
0
投票

为了避免拉伸,您必须确保宽度和高度参数的长宽比与 bbox 的长宽比相同

例如在 https://openlayers.org/en/latest/examples/wms-image.html

所提供的图像网址包括

&WIDTH=658&HEIGHT=355&CRS=EPSG:3857&BBOX=-13888944.635145342,2867630.7173607955,-7451112.364854658,6340929.2826392045

哪里

((-7451112.364854658) - (-13888944.635145342)) / (6340929.2826392045 - 2867630.7173607955) = 658 / 355

(请注意,对于某些投影,BBOX 轴顺序可能会颠倒)

© www.soinside.com 2019 - 2024. All rights reserved.