有没有办法告诉openLayers不要为特定WMS图层的特定边界请求图块?
我希望其他地图和其他图层仍可访问,因此地图上的maxExtent不适合我。我只想将一个WMS图层限制为特定边界。如果视图端口在边界内并且用户放大,则openlayer请求新的图块!但如果视口位于外部,则WMS应仅使用该WMS图层中的切片填充有界区域。
这有意义还是甚至可能?
我在Layer上尝试了maxExtent(WMS对象从Layer扩展),但这仍然不能阻止OpenLayers请求maxExtent之外的tile。
不,我不是要解决'粉红色瓷砖问题'。
出于性能原因,我需要这个。这个特定的WMS层是矢量密集型的。和TileCache不是一个选项,因为我每次都使用动态SLD。
答案 0 :(得分:2)
好的,我解决了它。真的很傻,在WMS Layer上设置'maxExtent'确实有效,但只有当'singleTile'选项设置为'false'时才有效。当Single tile设置为true时,由于某种原因,OpenLayers会忽略WMS Layer上的maxExtent,并且只请求一个边界与视口边界相同的tile!我不确定它是一个错误还是什么,因为它肯定没有意义。
答案 1 :(得分:0)
我认为您需要覆盖方法OpenLayers.Layer.WMS.getURL
。确定请求的区域是否进入BBOX并返回对WMS或空区块的引用。