Ini cara lain yang bisa Anda lakukan. Cara ini melibatkan penggunaan satu layer dengan ekspresi di setiap kelas. Ini sedikit lebih 'mahal' untuk melakukannya dengan cara ini karena melibatkan ekspresi logis, tetapi Anda mungkin tidak akan pernah melihat perbedaannya kecuali Anda menekan situasi yang benar-benar tinggi.
Setiap kelas memiliki ekspresi dua bagian. Kedua bagian ekspresi harus benar untuk fitur yang akan ditarik. Bagian pertama dari ekspresi memilih fitur-fitur yang harus jatuh ke dalam kelas itu berdasarkan pada atribut di shapefile Anda. Bagian kedua dari ekspresi mengevaluasi nilai variabel yang dilewatkan melalui url. Tidak masalah apa yang Anda beri nama variabel di url Anda (jangan gunakan kata-kata yang dicadangkan seperti 'layer'), itu hanya harus cocok dengan nama variabel dalam ekspresi Anda.
Berikut ini beberapa lapisan sampel:
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
Untuk menggambar hanya fitur air, Anda akan menggunakan permintaan URL seperti ini:
http: //localhost/cgi-bin/mapserv.exe? Map = / ms4w / apps / mymapfile.map & mode = peta & ingin = kayu
Karena ini adalah cara ketiga yang sah untuk mencapai tujuan Anda, Anda benar-benar ingin memikirkan apa tujuan Anda. Jika data Anda sering berubah, Anda mungkin ingin menggunakan opsi ini. Jika data Anda tidak sering berubah, saya pribadi akan menggunakan dua lapisan. Saya bahkan dapat membagi shapefile menjadi beberapa shapefile berdasarkan tipe penggunaan lahan jika itu meningkatkan kinerja. (Mungkin tidak, filter lapisan cukup efisien). Dengan pemetaan Web, semakin Anda mengoptimalkan data, semakin baik.