2

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

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

这是有道理的,还是有可能?


更新:

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

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

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

4

2 回答 2

2

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

于 2012-10-16T15:39:44.180 回答
0

我认为您需要覆盖该方法OpenLayers.Layer.WMS.getURL。判断请求的区域是否进入 BBOX 并返回对 WMS 或空图块的引用。

于 2012-10-16T09:35:47.780 回答