减少 Openlayers 中的 HTTP 请求

旋律

我在地图中有很多图块图层。所以当我缩放或移动地图时,所有图层都会向服务器发送 wms 请求。如何通过将不同图层的请求合并到单个请求来缩放地图时减少 HTTP 请求?

亚历山大·杜比

如果您的所有 WMS 图层都来自同一服务器,您可以ol.layer.Layer通过在逗号分隔列表中(在'LAYERS'参数下)定义每个图层,将它们组合成一个对象,更准确地说是一个源对象

    new ol.layer.Image({
      extent: [-13884991, 2870341, -7455066, 6338219],
      source: new ol.source.ImageWMS({
        url: 'https://ahocevar.com/geoserver/wms',
        params: {'LAYERS': 'topp:states,topp:population'}, // <---
        ratio: 1,
        serverType: 'geoserver'
      })
    })

您还可以尝试其他一些方法来减少请求数量/提高整体性能:

  • 您提到了“许多平铺层”,然后是 WMS 请求。如果您不使用图块缓存方法,则可以查看该方法。示例:地图缓存
  • 你也可以做一个大的 tile 请求而不是许多小的 tile 来渲染你的层(上面的例子就是这样做的)。这种方法减少了请求的数量,但您会觉得地图渲染速度较慢。它还降低了“缓存”结果的可能性,因为图块的请求通常是唯一的(取决于地图视图的范围)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章