2

特定のWMSレイヤーの特定の境界外のタイルを要求しないようにopenLayersに指示する方法はありますか?

マップの残りの部分と他のレイヤーに引き続きアクセスできるようにしたいので、マップ上のmaxExtentはオプションではありません。1つのWMSレイヤーを特定の境界に制限したいだけです。ビューポートが境界内にあり、ユーザーがうまくズームインした場合、openlayerは新しいタイルを要求します!ただし、ビューポートが外側にある場合、WMSは境界領域をそのWMSレイヤーのタイルでのみ埋める必要があります。

それは理にかなっていますか、それとも可能ですか?


アップデート:

  1. レイヤーでmaxExtentを試しましたが(WMSオブジェクトはレイヤーから拡張されています)、それでもOpenLayersがmaxExtentの外側のタイルを要求するのを止めません。

  2. いいえ、「ピンクのタイルの問題」に対処しようとはしていません。

  3. パフォーマンス上の理由からこれが必要です。この特定のWMSレイヤーは、ベクトルを多用します。毎回動的SLDを使用しているため、TileCacheはオプションではありません。

4

2 に答える 2

2

わかりました。解決しました。WMSレイヤーで「maxExtent」を設定しても機能しますが、「singleTile」オプションが「false」に設定されている場合に限ります。シングルタイルがtrueに設定されている場合、何らかの理由でOpenLayersはWMSレイヤーのmaxExtentを無視し、ビューポートの境界と同じ境界を持つ単一のタイルを要求するだけです。それがバグなのか、それとも何なのかはわかりません。それは確かに意味がないからです。

于 2012-10-16T15:39:44.180 に答える
0

メソッドを上書きする必要があると思いますOpenLayers.Layer.WMS.getURL。要求された領域がBBOXに入るかどうかを判断し、WMSまたは空のタイルへの参照を返します。

于 2012-10-16T09:35:47.780 に答える