Openlayers Openlayer放置特征后如何启用特征的拖动?

Openlayers Openlayer放置特征后如何启用特征的拖动?,openlayers,Openlayers,似乎我有一个简单的要求,但我对OpenLayer的知识似乎有限 我需要在地图中放置一个要素,放置后,将该要素拖动到正确的位置,然后获取纬度/长度坐标。如果我可以删除该功能重新开始,那就太好了 但首先: 我已成功放置功能,但无法从drawfeature切换到dragfeature。 如果有更好的方法来实现我的目标,我会非常乐意学习 // create the map variable map = new OpenLayers.Map("map"); // create layers var ma

似乎我有一个简单的要求,但我对OpenLayer的知识似乎有限

我需要在地图中放置一个要素,放置后,将该要素拖动到正确的位置,然后获取纬度/长度坐标。如果我可以删除该功能重新开始,那就太好了

但首先: 我已成功放置功能,但无法从drawfeature切换到dragfeature。 如果有更好的方法来实现我的目标,我会非常乐意学习

// 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);
谢谢
Marco

您需要将dragFeature控件添加到地图中:

map.addControl(drawFeature);

在添加drawFeature控件的地方执行此操作,那么activate()将按原样工作。

确实这样做了,我想我的代码中有一些输入错误。谢谢你的回复!