[OpenLayers-Users] Drawfeature with multiple vector layers
Peter
pfischer at proveo.com
Fri Jan 13 10:19:07 EST 2012
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-layers-tp7184326p7184326.html
Sent from the OpenLayers Users mailing list archive at Nabble.com.
More information about the Users
mailing list