アプリケーションの起動時に使用したくないフィルターがあり、特定のアクションに対してのみ使用します。これについてすでに質問があることは知っていますが、役に立ちません。実際には両方の答えを理解していません。
呼び出されていない場合、フィルターだけでなく、すべてのデータセットを取得するために、「列 = 値または 1 = 1」のロジックを使用していました。
ここに私が書いたものがあります:
FILTER (([ct]='%ct%') or '%ct%' = '%ct%')
VALIDATION
'ct' '^[a-zA-Z\-]+$'
END
Openlayers 3でパラメーターを使用してレイヤーを呼び出します
url: 'http://localhost:5000/cgi-bin/mapserv.exe?map=/ms4w/apps/tutorial/htdocs/essai.map&SERVICE=WMS&VERSION=1.1.1%20&REQUEST=GetCapabilities',
serverType: 'mapserver',
params: {'LAYERS': 'aisdata', 'ct':'myvalue', 'TILED': true}
});
しかし、すべてのデータセットが返されます。(マップファイルで削除する'%ct%' = '%ct%'
と、フィルターが適切に適用されます)
私の状態を無視するのを手伝ってくれる人はいますか?