一. 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: