0

我相信这可能是一个错误,但会先在这里检查。在只有两个图层的简单地图中,一个 Google 图层和一个由 MapServer 生成的 ImageWMS 图层,一个简单的缩放会在只发出一个请求时创建 8 到 10 个 WMS 请求。你可以在这里看到(过滤“mapserv64”的网络选项卡)

https://www2.greenwoodmap.com/fremontid/olgm.html

关闭 Google 层googleLayer.setVisible(false) 更糟糕的是,生成 16 到 18 个请求。

每个 WMS 请求都是针对将其放大一点的图像。有点像动画缩放为每个“步骤”发出 WMS 请求。我正在使用 ol3gm 0.14。为了比较,这里是同一张地图,没有使用 ol 4.1.1 的 Google 图层,每次缩放只发出一个 WMS 请求。

https://www2.greenwoodmap.com/fremontid/olgm0.html

另一个使用 ol3gm 0.14 但使用 TileWMS 而不是 ImageWMS 的示例(正确地)在关闭 Google 图层放大时请求 9 个图块。当 Google 图层打开时,它似乎需要一些额外的空白图块。

https://www2.greenwoodmap.com/fremontid/olgmTile.html

那么我错过了缩放设置还是这是一个错误?

4

1 回答 1

1

OLGM 基于 OpenLayers。它监听地图视图分辨率和中心变化来调整谷歌地图的地图。

在 OpenLayers 3.20.0 之前,"change:resolution"如果用户(例如)使用鼠标滚动按钮缩放地图,则会触发一次视图事件。从 3.20.0 开始,在制作动画时会触发多个事件。这使得 OLGM 尝试多次重新渲染图块,而不是只重新渲染一次。这可能是你正在经历的。

请在 GitHub 上查看以下问题,看看它是否与您的问题有关。

同时,您可以降级到 olgm 0.12.0,看看是否能解决您的问题。该版本使用 OpenLayers 3.19.1。

于 2017-06-26T12:11:43.703 回答