Marco
Marco

Reputation: 15909

Openlayer how to enable dragging of feature after placing it?

it seems that i have a simple requirement but my knowledge on OpenLayer seems to limited.

I have a need to place 1 feature inside a map and after placing it, drag this feature to the right place and then get the Lat / Long coordinates. It would be nice that i can delete the feature to start over..

But to start with: I have managed to place a feature, but am not able to switch from drawfeature to dragfeature. If there a better ways to achieve my goal i am more then happy to learn!

// create the map variable
map = new OpenLayers.Map("map");

// create layers
var mapLayer = new OpenLayers.Layer.OSM();                      // openstreetmap
var vectorLayer = new OpenLayers.Layer.Vector("Vector", {styleMap: styleMap});      // vector

// add the layers to the map
map.addLayer(mapLayer);
map.addLayer(vectorLayer);

map.addControl(new OpenLayers.Control.MousePosition());
var drawFeature = new OpenLayers.Control.DrawFeature(vectorLayer, OpenLayers.Handler.Point);
var dragFeature = new OpenLayers.Control.DragFeature(vectorLayer);

map.addControl(drawFeature);
drawFeature.activate();

vectorLayer.onFeatureInsert = function () {
    drawFeature.deactivate(); 
    // how to switch to drag feature???
    // dragFeature.activate(); does not seem to work
}

...

map.setCenter (lonLat, zoom);

Thanks Marco

Upvotes: 0

Views: 3591

Answers (1)

Niklas Wulff
Niklas Wulff

Reputation: 3524

You need to add the dragFeature control to your map:

map.addControl(drawFeature);

Do this where you add the drawFeature control, then the activate() would work as it is.

Upvotes: 2

Related Questions