[OpenLayers-Users] FW: SelectFeatureControl invalid when set style to vector?

Kris Geusebroek kgeusebroek at xebia.com
Wed Apr 29 16:20:00 EDT 2009


Forgot to include the list. Sorry

Cheers Kris
-----Original Message-----
From: Kris Geusebroek 
Sent: Wednesday, April 29, 2009 10:19 PM
To: 'shane_china'
Subject: RE: [OpenLayers-Users] SelectFeatureControl invalid when set
style to vector?

Something like this?;

	var wfsLayerStyle = OpenLayers.Util.extend({},
OpenLayers.Feature.Vector.style['default']);
	var wfsLayerSelectStyle = OpenLayers.Util.extend({},
OpenLayers.Feature.Vector.style['select']);
	var wfsLayerTempStyle = OpenLayers.Util.extend({},
OpenLayers.Feature.Vector.style['temporary']);

    var wfsPointStyle = OpenLayers.Util.extend({}, wfsLayerStyle);
	wfsPointStyle.graphicName = "${MARKERTYPE}";
	wfsPointStyle.pointRadius= 10;
	wfsPointStyle.strokeColor= "#B60000";
	wfsPointStyle.strokeWidth= 2;
	wfsPointStyle.fillColor= "#B60000";
	wfsPointStyle.fillOpacity= 1;
	
	var wfsLineStyle = OpenLayers.Util.extend({}, wfsLayerStyle);
    wfsLineStyle.strokeColor = "#B60000"; 
    wfsLineStyle.strokeWidth = 5;

    var wfsPolyStyle = OpenLayers.Util.extend({}, wfsLayerStyle);
    wfsPolyStyle.strokeColor = "#B60000"; 
    wfsPolyStyle.strokeWidth = 2;
    wfsPolyStyle.fillColor = "#D5D5D5"; 
    wfsPolyStyle.fillOpacity = 0.5;


    var wfsPointSelectStyle = OpenLayers.Util.extend({},
wfsLayerSelectStyle);
	wfsPointSelectStyle.graphicName = "${MARKERTYPE}_selected";
	wfsPointSelectStyle.pointRadius= 10;
	wfsPointSelectStyle.strokeColor= "#0000FF";
	wfsPointSelectStyle.strokeWidth= 2;
	wfsPointSelectStyle.fillColor= "#0000FF";
	wfsPointSelectStyle.fillOpacity= 0.6;

	var pointStyles = {
            "default": wfsPointStyle,
            "select": wfsPointSelectStyle,
            "temporary": wfsLayerTempStyle
	};
	var wfsPointStyleMap = new OpenLayers.StyleMap(pointStyles,
{extendDefault: false});
	
	var lineStyles = {
            "default": wfsLineStyle,
            "select": wfsLayerSelectStyle,
            "temporary": wfsLayerTempStyle
	};
	var wfsLineStyleMap = new OpenLayers.StyleMap(lineStyles, {});
	
	var polyStyles = {
            "default": wfsPolyStyle,
            "select": wfsLayerSelectStyle,
            "temporary": wfsLayerTempStyle
	};
	var wfsPolyStyleMap = new OpenLayers.StyleMap(polyStyles,
{extendDefault: false});

Here 3 styleMaps are created which are used in the styleMap option of
the layer

In you're code you are overwriting the layer_style var so there is one
problem at least.

Hope this helps

Cheers Kris
-----Original Message-----
From: users-bounces at openlayers.org [mailto:users-bounces at openlayers.org]
On Behalf Of shane_china
Sent: Wednesday, April 29, 2009 5:38 PM
To: users at openlayers.org
Subject: Re: [OpenLayers-Users] SelectFeatureControl invalid when set
style to vector?




Kris Geusebroek wrote:
> 
> Hi Shane,
> 
> You need to set a select style also, so extend
> Feature.Vector.style['select'] and add that to the layerstyle
> 
> Cheers Kris
> 
> -----Original Message-----
> From: users-bounces at openlayers.org
[mailto:users-bounces at openlayers.org]
> On Behalf Of shane_china
> Sent: Wednesday, April 29, 2009 2:38 PM
> To: users at openlayers.org
> Subject: Re: [OpenLayers-Users] SelectFeatureControl invalid when set
> style to vector?
> 
> 
> here is the detail code
> 
> When I construct vecotr like this:  var vector = new
> OpenLayers.Feature.Vector(point);
> select feature control works well. When the vector was selected, color
> changed.
> 
> But when I construct vector like this :
> var layer_style = OpenLayers.Util.extend({},
> OpenLayers.Feature.Vector.style['default']);
> layer_style.strokeColor = "blue";
> layer_style.fillColor = "blue";
> var vector = new OpenLayers.Feature.Vector(point, null, layer_style);
> Then the vector was selected, the color didn't change althought the
> vector
> was actually selected.
> I don't know why, is there any other style I should set?
> 
> -- 
> View this message in context:
>
http://n2.nabble.com/SelectFeatureControl-invalid-when-set-style-to-vect
> or--tp2739954p2740297.html
> Sent from the OpenLayers Users mailing list archive at Nabble.com.
> 
> _______________________________________________
> Users mailing list
> Users at openlayers.org
> http://openlayers.org/mailman/listinfo/users
> _______________________________________________
> Users mailing list
> Users at openlayers.org
> http://openlayers.org/mailman/listinfo/users
> 
> 




var layer_style = OpenLayers.Util.extend({},
OpenLayers.Feature.Vector.style['default']); 
var layer_style = OpenLayers.Uitl.extend(layer_style,
OpenLayers.Feature.Vector.style['select']);
layer_style.strokeColor = "blue"; 
layer_style.fillColor = "blue"; 
var vector = new OpenLayers.Feature.Vector(point, null, layer_style);

I add the second line to my code. But it also doesn't work. Could you
tell
me more exactly or some simple code? Add style to layer style? But layer
style should already have some select style, I thought. Why should I add
another? Why default one doesn't work? Thank you.

-- 
View this message in context:
http://n2.nabble.com/SelectFeatureControl-invalid-when-set-style-to-vect
or--tp2739954p2741324.html
Sent from the OpenLayers Users mailing list archive at Nabble.com.

_______________________________________________
Users mailing list
Users at openlayers.org
http://openlayers.org/mailman/listinfo/users



More information about the Users mailing list