我有一个地理服务器,并使用带有
GetMap
的 WMS format=image/png
请求从 wms 层导出图像,我得到了一个拉伸图像,即 IMG 1:
通过使用与
format=application/openlayers
相同的 WMS 层,OpenLayers 库更改/适合该层的 bbox,获得正确的图像(未拉伸),即 IMG 2:
WMS 请求一和二之间的唯一区别是(输出)格式(请求的所有其他参数
srs
、width
、height
等都是相同的)。
OpenLayers 重新计算一个新的 bbox 以可视化正确的图像,执行此操作的算法是什么?
谢谢。
为了避免拉伸,您必须确保宽度和高度参数的长宽比与 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 轴顺序可能会颠倒)