Robert,
In my case, I've solved similar problem by adding the rules to the "default"
style so the "select" style keeps the same:
var style ={
fillColor: "#" + query.getRellenoColor(),
fillOpacity: query.getRellenoTransparencia(),
strokeColor: "#" + query.getContornoColor(),
strokeWidth: query.getContornoGrosor(),
strokeOpacity: query.getContornoTransparencia(),
strokeDashstyle: query.getContornoTipo()
};
var rule = new OpenLayers.Rule({
filter: new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.Comparison.EQUAL_TO,
property: "id",
value: query.getID()
}),
symbolizer: style
});
vectorLayer.styleMap.styles["default"].addRules([rule, new
OpenLayers.Rule({elseFilter: true})]);
Hope this can help.
Regards.
Un saludo,
··················································································
David Alda Fernández de Lezea
Lurralde eta Biodibertsitate Saila / Dpto. de Territorio y Biodiversidad
IKT
Granja Modelo s/n · 01192 · Arkaute (Araba)
··················································································
Tlfnos.: 945-00-32-95 Fax: 945-00.32.90
··················································································
email: [email protected] web: www.ikt.es
<http://www.ikt.es/>
··················································································
________________________________
De: Robert Buckley [mailto:[email protected]]
Enviado el: jueves, 07 de abril de 2011 9:51
Para: [email protected]
Asunto: Re: [Geoserver-users] How can I style vector data with sld with aselect
style also?
..ah...But how do I add the select part to this?
When I click on the layer, the selected polygon is not highlighted!?!?!
________________________________
Von: Robert Buckley <[email protected]>
An: [email protected]
Gesendet: Donnerstag, den 7. April 2011, 9:44:29 Uhr
Betreff: Re: [Geoserver-users] How can I style vector data with sld with a
select style also?
Solved!
<code>
var style = new OpenLayers.Style();
var rule_class1 = new OpenLayers.Rule({
filter: new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.Comparison.LESS_THAN,
property: "solar_kopf",
value: 26,
}),
symbolizer: {fillOpacity: 0.9, fillColor: '#E0F3F8'}
});
var rule_class2 = new OpenLayers.Rule({
filter: new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.Comparison.GREATER_THAN_OR_EQUAL_TO,
property: "solar_kopf",
value: 26,
}),
symbolizer: {fillOpacity: 0.9, fillColor: '#FEE090'}
});
var rule_class3 = new OpenLayers.Rule({
filter: new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.Comparison.GREATER_THAN_OR_EQUAL_TO,
property: "solar_kopf",
value: 51,
}),
symbolizer: {fillOpacity: 0.9, fillColor: '#FDAE61'}
});
var rule_class4 = new OpenLayers.Rule({
filter: new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.Comparison.GREATER_THAN_OR_EQUAL_TO,
property: "solar_kopf",
value: 76,
}),
symbolizer: {fillOpacity: 0.9, fillColor: '#F46D43'}
});
var rule_class5 = new OpenLayers.Rule({
filter: new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.Comparison.GREATER_THAN_OR_EQUAL_TO,
property: "solar_kopf",
value: 101,
}),
symbolizer: {fillOpacity: 0.9, fillColor: '#D73027'}
});
var rule_class6 = new OpenLayers.Rule({
filter: new OpenLayers.Filter.Comparison({
type: OpenLayers.Filter.Comparison.GREATER_THAN,
property: "solar_kopf",
value: 200,
}),
symbolizer: {fillOpacity: 0.9, fillColor: '#AA00FF'}
});
style.addRules([rule_class1,rule_class2,rule_class3,rule_class4,rule_class5,rule_class6]);
</code>
________________________________
Von: Robert Buckley <[email protected]>
An: [email protected]
Gesendet: Donnerstag, den 7. April 2011, 8:53:21 Uhr
Betreff: [Geoserver-users] How can I style vector data with sld with a select
style also?
Hi,
I have a wfs vector layer which has to be styled with 6 classes based on
integer values.
0-25;
26-50;
51-75;
76-100;
101-200;
200+
When I click on the features it should also have a select style (red border
line)
I really haven´t got a clue where to start. I have a sld which I made for the
wms version, but how can I get a wfs vector layer to use this sld and how do I
attatch a select style?
<code>
var style_solar = new OpenLayers.StyleMap({
"default": new
OpenLayers.Style(OpenLayers.Util.applyDefaults({
fillOpacity: 0.6,
fillColor: '#000000'
}, OpenLayers.Feature.Vector.style["default"])),
"select": new
OpenLayers.Style(OpenLayers.Util.applyDefaults({
fillOpacity: 0.6,
fillColor: '#FF0000'
}, OpenLayers.Feature.Vector.style["select"]))
});
var layer_solar = new OpenLayers.Layer.Vector("Solarenergie", {
styleMap: style_solar,
projection: "EPSG:4326",
strategies: [new OpenLayers.Strategy.Fixed()],
protocol: new OpenLayers.Protocol.WFS({
url: "http://maps.zgb.de:8080/geoserver/wfs?",
version: "1.1.0",
featureType: "SG_gen_solarkopf_wgs84",
featureNS: "http://www.zgb.de/postgis",
srsName: "EPSG:4326"
}),
eventListeners: {
featuresadded: function(){
var extent_solar = layer_solar.getDataExtent()
mapPanel_solar.map.zoomToExtent(extent_solar);
}
}
});
</code>
Thanks for any pointers.
Yours,
Robert
------------------------------------------------------------------------------
Xperia(TM) PLAY
It's a major breakthrough. An authentic gaming
smartphone on the nation's most reliable network.
And it wants your games.
http://p.sf.net/sfu/verizon-sfdev
_______________________________________________
Geoserver-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-users