2013-03-07 27 views
0

全部失敗。我有這個小問題和我'尋找一些幫助:重新激活拖動控件在開放層

首先我必須包含以下功能:

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 

和:

control.handler.drag.feature = imageFeature 

我一直在尋找新的功能集與所控制的功能。但是在openlayers文檔中找不到任何內容。 其他控件不能同時處於活動狀態(用螢火蟲控制)。

但沒有運氣。沒有幫助。爲什麼這個?我確信這應該起作用。站在這裏,我做錯了什麼?

每個幫助讚賞。

謝謝

回答

0

通過我的自我發現。問題在於我使用了地理文本功能存儲來在網格中顯示點。這個網格配置了一個地理文本特徵選擇模型。我剛剛複製了這個... 選擇模型還在地圖上爲特徵選擇控件設置了標註。在第一輪中,這與拖動控件沒有衝突,因爲它在後面加載。

當工具再次進入第一步時,所有控件都會加載到地圖中。選擇控制和拖動控制被啓用。這不能由開放層處理。看起來最後映射添加控制是一個優先。所以你可以一次又一次啓用拖動控制。選擇控制勝出。

訣竅是decativate選擇控制。然後所有作品都完美無缺