2009-05-01 5 views
1

OpenLayers을 사용하여 내 프로그램에서 관심있는 상자를 만듭니다. 이 코드를 사용하고 있습니다 :OpenLayers를 사용하여지도 영역 위에 상자 컨트롤 만들기

var control = new OpenLayers.Control(); 
OpenLayers.Util.extend(control, { 
    draw: function() { 
     this.box = new OpenLayers.Handler.Box(control, 
      {"done": this.notice}, 
      {keyMask: OpenLayers.Handler.MOD_SHIFT}); 
     this.box.activate(); 
    }, 
    notice: function (bounds) { 
     areaSelected(bounds); 
    } 
}); 
map.addControl(control); 

control "시프트는 상자 만들기"캡처와 관심의 내 영역으로 선택 영역을 사용할 수 있습니다. 그러나 값은 픽셀로 돌아옵니다. 하지만 나는 경도와 위도을 원한다. 픽셀이 아니다. 마우스 위치 control은 정확한 길이가 &입니다. 상자를 만드는 방법을 신경 쓰지 않고 사용자가지도 영역을 쉽게 선택할 수있게하고 싶습니다. 영역의 길이가 &이어야합니다.

답변

0

매우 늦은 답변이지만 앞으로 다른 도움이 될 것입니다! 귀하의 통지 기능에 당신이 LL1 & LL2의 위도/경도 쌍을해야합니다

var point1 = new OpenLayers.Pixel(bounds.left, bounds.bottom); 
var point2 = new OpenLayers.Pixel(bounds.right, bounds.top); 

var ll1 = map.getLonLatFromPixel(point1); 
var ll2 = map.getLonLatFromPixel(point2); 

드롭 :

나는 다음을 수행하여 픽셀의 진수 학위를 얻을 수 있었다!

관련 문제