AW: [OpenLayers-Users] Drawfeature with multiple vector layers
Arnd Wippermann
arnd.wippermann at web.de
Fri Jan 13 13:38:24 EST 2012
Hi,
I use controls[i].destroy() to get rid of the controls
and add them to another layer.
Arnd
-----Ursprüngliche Nachricht-----
Von: openlayers-users-bounces at lists.osgeo.org
[mailto:openlayers-users-bounces at lists.osgeo.org] Im Auftrag von Peter
Gesendet: Freitag, 13. Januar 2012 16:19
An: users at openlayers.org
Betreff: [OpenLayers-Users] Drawfeature with multiple vector layers
hey guys,
i like to draw polygons on a map, but it is important that i have several
levels. So my idea was to add a vector layer for each level. to change
between the layers i use the " map.removeControl(controls[key]);" function
to remove all controls needed for drawing and re-add the controls with the
new selected layer. So my problem is now, that all works fine with the
initalized layer, but when i change to annother layer it the drawing feature
behaves strange and it is not possible to draw new polygons. So please help
me how i can use the drawfeature Control with multiple layers.
My pseudo Code:
//create multiple layers: one for each level
var styleMapL1 = new OpenLayers.StyleMap({fillColor: "green"});
vlayer1 = new OpenLayers.Layer.Vector("Layer 1", {styleMap:
styleMapL1});
layerArray[1] = vlayer1;
var styleMapL2 = new OpenLayers.StyleMap({fillColor: "red"});
vlayer2 = new OpenLayers.Layer.Vector("Layer 2", {styleMap:
styleMapL2});
layerArray[2] = vlayer2;
var styleMapL3 = new OpenLayers.StyleMap({fillColor: "blue"});
vlayer3 = new OpenLayers.Layer.Vector("Layer 3", {styleMap:
styleMapL3});
layerArray[3] = vlayer3;
map.addLayers([vlayer1, vlayer2, vlayer3]);
this.addControls(3);
//this method is called when i want to change the layers function
switchControls(layerIndex)
{
this.removeControls();
this.addControls(layerIndex);
}
function addControls(layerIndex)
{
if(layerIndex != null)
{
var layer = layerArray[layerIndex];
controls = {
polygon: new
OpenLayers.Control.DrawFeature(layer,
OpenLayers.Handler.Polygon)
};
for(var key in controls) {
map.addControl(controls[key]);
controls[key].activate();
}
}
}
function removeControls()
{
for(var key in controls) {
map.removeControl(controls[key]);
}
}
Greetings Peter
--
View this message in context:
http://osgeo-org.1803224.n2.nabble.com/Drawfeature-with-multiple-vector-laye
rs-tp7184326p7184326.html
Sent from the OpenLayers Users mailing list archive at Nabble.com.
_______________________________________________
Users mailing list
Users at lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/openlayers-users
More information about the Users
mailing list