【问题标题】:Make Openlayers request WMS tiles only within a certain bounds使 Openlayers 仅在特定范围内请求 WMS 切片
【发布时间】:2012-10-12 22:41:51
【问题描述】:

有没有办法告诉 openLayers 不要为特定 WMS 图层请求超出特定范围的切片?

我希望地图的其余部分和其他图层仍然可以访问,因此地图上的 maxExtent 对我来说不是一个选项。我只想将一个 WMS 图层限制在特定范围内。如果视口在边界内并且用户放大良好,openlayer 会请求新的图块!但如果视口在外面,WMS 应该只用来自该 WMS 层的图块填充有界区域。

这有意义吗,甚至有可能吗?


更新:

  1. 我已经在 Layer 上尝试了 maxExtent(WMS 对象从 Layer 扩展),但这仍然不能阻止 OpenLayers 请求 maxExtent 之外的图块。

  2. 不,我不想解决“粉红色瓷砖问题”。

  3. 出于性能原因,我需要这个。这个特定的 WMS 层是矢量密集型的。并且 TileCache 不是一个选项,因为我每次都使用动态 SLD。

【问题讨论】:

  • 你可以从你的磁贴服务器限制它

标签: javascript openlayers wms


【解决方案1】:

好的,我解决了。真的很傻,在 WMS 层上设置 'maxExtent' 确实有效,但只有在 'singleTile' 选项设置为 'false' 时才有效。当 Single tile 设置为 true 时,出于某种原因,OpenLayers 会忽略 WMS 层上的 maxExtent,而只是请求边界与视口边界相同的单个 tile!我不确定它是一个错误还是什么,因为它肯定没有意义。

【讨论】:

    【解决方案2】:

    我认为您需要覆盖方法OpenLayers.Layer.WMS.getURL。判断请求的区域是进入BBOX,返回WMS的引用还是空的tile。

    【讨论】:

    • 我不确定如何使用 getURL 方法。文档说:它返回一个“带有图层的 url 和参数的字符串,以及传入的边界和指定为参数的适当图块大小。”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-22
    • 1970-01-01
    • 2020-04-26
    • 2017-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多