2013-06-13 2 views
1

mouseUp 이벤트가 발생하는 지점의 좌표를 가져 오는 동안 문제가 발생했습니다. 여기 이벤트 핸들러 :요소를지도로 드래그 한 후 mouseUp 이벤트에서 lon-lat를 가져올 수 없습니다 (openlayers)

$('#someDiv') 
.on("mouseup", map, function(event) { 
    click.trigger(event, map, d[i]); 
}) 

그리고 여기 트리거입니다 :

OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { 
    defaultHandlerOptions: { 
     'single': true, 
     'double': false, 
     'pixelTolerance': 0, 
     'stopSingle': false, 
     'stopDouble': false 
    }, 
    initialize: function(options) { 
     this.handlerOptions = OpenLayers.Util.extend(
      {}, this.defaultHandlerOptions 
     ); 
     OpenLayers.Control.prototype.initialize.apply(
      this, arguments 
     ); 
     this.handler = new OpenLayers.Handler.Click(
      this, { 
       'mouseup': this.trigger 
      }, this.handlerOptions 
     ); 
    }, 
    trigger: function(e, map, k) { 
     var marker = map.getLonLatFromPixel(e.xy); 
     var point = new OpenLayers.Geometry.Point(new OpenLayers.LonLat(marker.lat.toFixed(5), 
     marker.lng.toFixed(5))); 
    } 
}); 

내가 catch되지 않은 형식 오류 가지고 : 그래서 널의 속성을 읽을 수 없습니다 '위도', 어떻게 내가 위도 얻을 수 있습니다 mouseUp 이벤트가 등록 된 지점의 lon입니까?

답변

2

x 및 y 속성을 가진 객체를 getLonLatFromPixel 메소드에 보내야합니다. 따라서 귀하의 경우 다음과 같이 보일 것입니다 : var marker = map.getLonLatFromPixel ({x : e.pageX, y : e.pageY});

+0

타이 블로가 인정됩니다. – Arti88