请求的WMS图像宽度超出服务器最大值

时间:2016-01-08 22:37:43

标签: openlayers-3

客户在mapserver中有一个wms图层,其配置的最大宽度和高度为2048.

当OL3发出getmap请求时,它可能会要求图像宽度超过最大值,并且生成的图像比请求的图像更窄。生成的地图图层已偏移。

Map offset example

是否有解决方法或修正错误?

我们正在使用Openlayers 3.10.1版本

2 个答案:

答案 0 :(得分:2)

您可以在MapServer配置中增加最大尺寸,或使用ol.source.TileWMS将图像数据加载为图块。

答案 1 :(得分:0)

对于更高版本的OpenLayers(最终版本为OL3或更高版本),如果您无权访问服务器,并且使用TileWMS会导致标签重复出现问题,则有一种解决方法。首先,通过在hidpi: false源构造函数中设置ratio: 1ImageWMS使图像请求尽可能小。另请注意,使用视图旋转将使宽度或高度最多增加sqrt(2)倍。但是,在某些情况下(例如准备300 dpi的A3打印),地图画布的宽度大于4096 px是不可避免的。要保留其他图层的细节,您不希望降低dpi。相反,您可以使用自定义图像加载功能将WMS图像请求缩小到最大值,然后将输出拉伸回OpenLayers期望的位置。当300 dpi的A3 PDF需要4962像素(如果旋转则更多)宽图像https://codepen.io/anon/pen/bPvExb

,此演示将WMS请求的宽度和高度限制为4096。