客户在mapserver中有一个wms图层,其配置的最大宽度和高度为2048.
当OL3发出getmap请求时,它可能会要求图像宽度超过最大值,并且生成的图像比请求的图像更窄。生成的地图图层已偏移。
是否有解决方法或修正错误?
我们正在使用Openlayers 3.10.1版本
答案 0 :(得分:2)
您可以在MapServer配置中增加最大尺寸,或使用ol.source.TileWMS将图像数据加载为图块。
答案 1 :(得分:0)
对于更高版本的OpenLayers(最终版本为OL3或更高版本),如果您无权访问服务器,并且使用TileWMS
会导致标签重复出现问题,则有一种解决方法。首先,通过在hidpi: false
源构造函数中设置ratio: 1
和ImageWMS
使图像请求尽可能小。另请注意,使用视图旋转将使宽度或高度最多增加sqrt(2)倍。但是,在某些情况下(例如准备300 dpi的A3打印),地图画布的宽度大于4096 px是不可避免的。要保留其他图层的细节,您不希望降低dpi。相反,您可以使用自定义图像加载功能将WMS图像请求缩小到最大值,然后将输出拉伸回OpenLayers期望的位置。当300 dpi的A3 PDF需要4962像素(如果旋转则更多)宽图像https://codepen.io/anon/pen/bPvExb