2013-03-07 2 views
0

all. 열린 레이어에서 끌기 컨트롤을 다시 활성화하면 실패합니다.

var point = new OpenLayers.Geometry.Point(imageConfig.XPos, imageConfig.YPos); 
var imageFeature = new OpenLayers.Feature.Vector(point); 
layers.imageLayer.addFeatures([imageFeature]); 

그래서 포인트 레이어에 그릴 수있다 :

먼저 나는 다음을 포함하는 기능을 가지고 : 나는이 작은 문제와 i'am 어떤 도움을 찾고 있습니다. 이 레이어에는 또한 오픈 레이어 드래그 컨트롤이 있습니다. 점이 그려진 후에 활성화됩니다. 이제 나는 그 지점을 끌 수 있습니다. 매력처럼 작동합니다.

이 단계는 사용자가 수행하는 단계별 절차의 일부입니다. 그래서 끌기가 끝나면 다음 단계가 그 지점으로 무엇인가를하는 것입니다. 이 다른 단계 동안 드래그 컨트롤이 비활성화됩니다. 이 과정에서 드래그 컨트롤의 활성화/비활성화가 필요하므로 단계간에 이동할 수 있습니다. 이것은 잘 작동합니다.

모든 단계가 끝나면 점이 레이어에서 제거됩니다. 또한 위대한 작품.

하지만 레이어에 점을 그리는 함수를 다시 호출하여 드래그 컨트롤을 활성화하면 점을 선택하려고해도 더 이상 새 점을 드래그 할 수 없습니다. 마우스 클릭으로! firbug로 제어

I :

  • 기능
  • 기능
  • 제어
  • 제어 오른쪽 층 거기
  • 제어
  • 를 활성화 오른쪽 레이어에 임

어쩌면 나는 여기서 간단한 것을 놓치고있다. 하지만 나는 이틀 동안 이걸로 내 똥을 끊었고 대답을 찾을 수 없다.

그런데 첫 번째 단계 시퀀스 (모든 것이 좋을 때)에서 컨트롤 피처 속성이 포인트 피쳐로 설정된다는 것을 알았습니다. 그러나 두 번째가 아닙니다. 컨트롤 끌어 오기 처리기 기능 속성과 동일합니다. 내가 컨트롤에 새로운 기능을 설정하는 기능을 찾고 있었다

control.handler.drag.feature = imageFeature 

:

control.feature = imageFeature 

과 :

나는하여 수동으로 설정했습니다. 그러나 openlayers 문서에서 찾을 수 없습니다. 다른 컨트롤이 동시에 활성화되지 않습니다 (방화 녀가 제어 함).

운이 없다. 도와주지 않았어. 왜? 이것이 제대로 작동 할 것이라 확신합니다. 내가 뭘 잘못하고 있니?

모든 도움을 주셨습니다.

고마워요.

답변

0

내 생각에 그려 냈습니다. 문제는 내가 지리픽 피처 저장소를 사용하여 표에 점을 표시하는 것이 었습니다. 이 그리드는 지리 정보 피처 선택 모델로 구성되었습니다. 방금 복사했습니다. 선택 모델도지도에서 기능 선택 컨트롤을 선택합니다. 첫 번째 라운드에서는 드래그 컨트롤이로드되기 때문에 끌기 컨트롤과 충돌하지 않습니다.

도구가 첫 번째 단계로 다시 들어가면 모든 컨트롤이지도에로드됩니다. 선택 컨트롤과 드래그 컨트롤이 활성화됩니다. 이것은 열린 레이어로 처리 할 수 ​​없습니다. 지도를 추가하는 것이 최우선 과제입니다. 따라서 드래그 컨트롤을 계속해서 다시 활성화 할 수 있습니다. 선택 컨트롤이 우선합니다.

트릭은 선택 컨트롤을 탈퇴하는 것입니다. 그렇다면 모든 것이 완벽합니다.

관련 문제