【问题标题】:Requested WMS image width exceeds the server maximum请求的 WMS 图像宽度超过服务器最大值
【发布时间】:2019-07-02 00:30:31
【问题描述】:

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

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

Map offset example

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

我们使用的是 3.10.1 版的 Openlayers

【问题讨论】:

    标签: openlayers-3


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-10-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-20
        相关资源
        最近更新 更多