一. OpenLayers.Rule类
为要素对象指定样式,最好的方式就是利用Rule类,当创建Rule对象后,指定一个Filter对象和一个symbolizer对象,但规则起作用时可调用,在rule对象中有个可选name属性可以给rule指定任意的名字。
Rule对象应用于style对象,可以在style对象中使用很多rule
var my-rule=new OpenLayers.Rule({
filter:new OpenLayers.Filter({}),
symbolizer:{key:values}
});
style_object.addRules([my_rule]);
二.OpenLayers.Filter类
Filter类控制要素属性匹配的逻辑在于规则是否应用。Filter类有四个字类:Comparison,FeatureId,logical,Spatial.
1.Filter.Comparison类
Comparison类就像名字一样,是用来比较矢量图层某个属性值与指定规则对象中的参数值比较。应用比较的类型是通过类型属性指定的。Filter.Comparison有些附随的值属性
所有的比较类型如GREATER_THAN.
2.Filter.FeatureId类
该类是基于要素Id来过滤要素的,特别在WFS服务或者SLDs非常有用。在WFS、SLDs中,FeatureID是指定唯一要素的。只要知道FeatureID就能指定要素样式。
var my_filter=new OpenLayers.Filter.FeatureId({
fids:['fid1','fid2']
});
3.Feature.Logical类
Feature.Logical类有三种操作:
%OpenLayers.Filter.Logical.AND:
%OpenLayers.Filter.Logical.OR:
%OpenLayers.Filter.Logical.NOT: