Answers:
这是您可以执行的另一种方法。这种方式涉及在每个类中使用带有表达式的一层。这种方式这样做有点“昂贵”,因为它涉及逻辑表达式,但是除非遇到真正的高负荷情况,否则您可能永远不会注意到这种差异。
每个类都有一个两部分的表达式。对于要绘制的特征,表达式的两个部分都必须为真。表达式的第一部分根据shapefile中的属性选择应归入该类的特征。表达式的第二部分评估通过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
由于这是实现目标的第三种有效方法,因此您确实要考虑目标是什么。如果您的数据经常更改,则可能需要使用此选项。如果您的数据不经常更改,我个人将分为两层。如果可以提高性能,我甚至可以按土地用途类型将shapefile分成多个shapefile。(可能不会,图层过滤器非常有效)。使用Web映射,您越优化数据就越好。