Vector 在openlayers中重新激活拖动控件失败

Vector 在openlayers中重新激活拖动控件失败,vector,controls,openlayers,drag,Vector,Controls,Openlayers,Drag,全部。我有一个小问题,我正在寻求帮助: 首先,我有一个包含以下内容的函数: var point = new OpenLayers.Geometry.Point(imageConfig.XPos, imageConfig.YPos); var imageFeature = new OpenLayers.Feature.Vector(point); layers.imageLayer.addFeatures([imageFeature]); 因此,将在图层上绘制一个点。在该层上还有一个openla

全部。我有一个小问题,我正在寻求帮助:

首先,我有一个包含以下内容的函数:

var point = new OpenLayers.Geometry.Point(imageConfig.XPos, imageConfig.YPos);
var imageFeature = new OpenLayers.Feature.Vector(point);
layers.imageLayer.addFeatures([imageFeature]);
因此,将在图层上绘制一个点。在该层上还有一个openlayers拖动控件。在绘制点后,它将被激活。现在我可以拖动点了。工作起来很有魅力

这是用户驱动的逐步过程的一小部分。因此,在完成拖动之后,接下来的步骤是对点进行操作。在执行这些其他步骤时,将禁用拖动控制。在此过程中,可以在步骤之间跳跃,因此需要取消/激活阻力控制。这个很好用

在所有步骤结束时,将从图层中删除该点。这也很有效

但是:如果我再次调用在图层上绘制点的函数(当然现在它是一个新的)并激活拖动控制,我就不能再拖动新的点,即使我尝试用鼠标单击来选择点

我用firbug控制:

  • 有什么特色吗
  • 功能位于正确的图层上
  • 控制在那里
  • 控件位于正确的层上
  • 控制被激活
也许我错过了一件简单的事情。但我在这件事上破口大骂了两天,找不到答案

顺便说一句,我发现在第一步序列中(当所有功能都很好时),控件功能属性是用点功能设置的。但在第二种情况下并非如此。控件拖动处理程序功能属性中的相同

我尝试通过以下方式手动设置:

control.feature = imageFeature
以及:

我正在寻找一个函数来设置控件的新特性。但在openlayers文档中找不到任何内容。 其他控件不同时处于活动状态(使用firebug控制)

但是没有运气。没有帮助。为什么会这样?我相信这应该行得通。站在这里我做错了什么或错过了什么

谢谢你的帮助


谢谢

我自己想出来的。问题是我使用geoext功能存储来显示网格中的点。该网格使用geoext特征选择模型进行配置。我只是复制了这个。。。 选择模型还将在地图上指定要素选择控件。在第一轮中,这不会与拖动控件冲突,因为它是在之后加载的

当工具再次进入第一步时,所有控件都将加载到地图中。选择控件和拖动控件处于启用状态。这不能由开放层处理。似乎最后一个映射添加的控件是带有优先级的控件。因此,可以一次又一次地启用拖动控件。选择控件获胜

诀窍是取消select控件的活动。然后一切都完美了

control.handler.drag.feature = imageFeature