I'm trying to add a rule to paint some roads of my GeoJSON file with a different style using OpenLayers.
The problem is that even after adding a property "featureType" to the feature in response to the event "featureadded", the rule doesn't seem to be working.
Any ideas why this happens?
This if a feature example in GeoJSON format after changing the "featureType":
{
"type": "Feature",
"properties": {
"id": "42",
"state": "texto",
"featureType": "segmento_logradouro"
},
"geometry": {
"type": "LineString",
"coordinates": [
[
574951.47711036,
9673700.3858644
],
[
574954.47530982,
9673558.2712099
],
[
574814.15957496,
9673551.0755312
]
]
},
"crs": {
"type": "name",
"properties": {
"name": "EPSG:29193"
}
}
}
And this is the code I used to add the rules:
var ruleSegmentoLogradouroStyle = OpenLayers.Util.applyDefaults({
fillColor : "#0000FF",
fillOpacity : 0.9,
strokeColor : "#FF0000",
strokeOpacity : 0.9,
strokeWidth : 5
}, OpenLayers.Feature.Vector.style["default"]);
var ruleSegmentoLogradouro = new OpenLayers.Rule({
filter : new OpenLayers.Filter.Comparison({
type : OpenLayers.Filter.Comparison.EQUAL_TO,
property : "featureType",
value : "segmento_logradouro",
}),
symbolizer : ruleSegmentoLogradouroStyle
});
var ruleDefault = new OpenLayers.Rule({
symbolizer : OpenLayers.Util.applyDefaults({},
OpenLayers.Feature.Vector.style["default"]),
elseFilter : true
});
defaultStyle = OpenLayers.Util.applyDefaults({
fillColor : "green",
fillOpacity : 0.4
}, OpenLayers.Feature.Vector.style["default"]);
MapControl.editLayer.styleMap = new OpenLayers.StyleMap(defaultStyle);
MapControl.editLayer.styleMap.styles['default'].addRules([ ruleSegmentoLogradouro,
ruleDefault ]);