Reputation: 2693
I'm trying to set up a Rule using the Function Filter. But it does not work: the lines on that layer are just black. More importantly, the function that I provide to filter the features, is never called.
Can someone please point out what is the mistake that i'm making?
Here is the code.
Thank you for your time and kind concern.
var my_filter = new OpenLayers.Filter.Function(
function(attributes) {
console.log(attributes);
var x=0;
return true;
});
var ruleLow = new OpenLayers.Rule({
filter:my_filter ,
symbolizer: {pointRadius: 10, fillColor: "green",
fillOpacity: 0.5, strokeColor: "green"}
});
var my_style=new OpenLayers.Style( null,ruleLow);
var my_style_map=new OpenLayers.StyleMap({
"temporary":my_style,
"default":my_style,
"select":my_style
});
this.vectors= new OpenLayers.Layer.Vector(
"Vector Layer",
{
styleMap:my_style_map,
renderers:this.renderer,
}
);
Upvotes: 2
Views: 1130
Reputation: 2693
I'm glad to share with you how to use the OpenLayers.Filter.Function!! (so I solved the problem that I had): that what I had to change basically.
Thanks anyways.
var my_filter = new OpenLayers.Filter.FeatureId({
**type: OpenLayers.Filter.Function,**
evaluate:function(attributes) {
console.log(attributes);
var x=0;
return true;
}
});
var ruleLow = new OpenLayers.Rule({
filter:my_filter,
});
var my_style=new OpenLayers.Style( {pointRadius: 7, fillColor: "#FF3300",
fillOpacity: 0.5, strokeColor: "#FF3300"},**{rules:[ruleLow]}**);
var my_style_map=new OpenLayers.StyleMap({
"temporary":my_style,
"default":my_style,
"select":my_style
});
this.vectors= new OpenLayers.Layer.Vector(
"Vector Layer",
{
styleMap: my_style_map,
renderers:this.renderer,
}
);
Upvotes: 3