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

Reply via email to