回答:
これを行う別の方法を次に示します。この方法では、各クラスの式を持つ1つのレイヤーを使用します。論理式が含まれるため、この方法で行う方が少し「コストがかかります」が、実際に高負荷の状況に遭遇しない限り、違いに気付くことはありません。
各クラスには2つの部分からなる式があります。フィーチャーを描画するには、式の両方の部分がtrueである必要があります。式の最初の部分では、シェープファイルの属性に基づいて、そのクラスに分類される機能を選択します。式の2番目の部分は、URLを通じて渡された変数の値を評価します。URLで変数の名前を何にするかは関係ありません(「layer」などの予約語は使用しないでください)。式の変数名と一致する必要があります。
ここにいくつかのサンプルレイヤーがあります:
LAYER
NAME "watersheds"
STATUS DEFAULT
DATA 'majclip'
TYPE POLYGON
CLASS
NAME "water"
EXPRESSION ([MAJOR] < 42 AND '%wanted%' = 'water')
STYLE
COLOR 0 0 255
END
END
CLASS
NAME "wood"
EXPRESSION ([MAJOR] >= 42 AND '%wanted%' = 'wood')
STYLE
COLOR 0 255 0
END
END
END
水機能のみを描画するには、次のようなURLリクエストを使用します 。http://localhost/cgi-bin/mapserv.exe?map = / ms4w / apps / mymapfile.map&mode = map&wanted = wood
これは目標を達成するための3番目の有効な方法であるため、目標を明確に考えてください。データが頻繁に変更される場合は、このオプションを使用することをお勧めします。データが頻繁に変更されない場合は、個人的には2つのレイヤーを使用します。パフォーマンスが向上した場合は、土地利用タイプごとにシェープファイルを複数のシェープファイルに分割することもできます。(そうではないかもしれませんが、レイヤーフィルターはかなり効率的です)。Webマッピングを使用すると、データを事前に最適化すればするほど、より適切になります。