2009-12-08 4 views
0

Google지도 위에 새로운 매시업을 만들고 있습니다. V3를 사용하여 더 긴 수명을 제공하기로 결정했을만큼 간단합니다.드래그 후 Google지도 V3에서 맞춤 infoWindows의 pixelPosition을 업데이트하는 방법은 무엇입니까?

그러나 Google지도의 infoWindow에서 제공하지 않는 몇 가지 특별한 요구 사항이 있습니다.

사용자 정의 infoWindow에 marker.projectionContainer.pixelPosition을 배치했습니다. 확대/축소 후에 정확한 위치를 얻지 만 드래그하면 마커 pixelPosition이 업데이트되지 않습니다. 이전 위치의 마커와 드래그 한 후 마커 사이의 차이점을 얻으려면 어떻게해야합니까?

또는

나는 DOM에서 위치를 해킹 시도의 OverlayView을 대신 사용해야합니까? 지도의 정보창은 패널에서 자동으로 업데이트/주차됩니다.

답변

0

이 답변 드래그하여 마커를 드래그지도를 드래그하지 의미 있다고 가정하는 경우가 있으면 알려 주시기

당신은 수 있도록 OverlayView를 사용해야합니다 그리고 당신은 바인딩 MVC의 기술을 사용할 수 있습니다 마커의 position 속성에 추가합니다.

function MyOverlay(marker) { 
    this.bindTo('position', marker); 
} 
MyOverlay.prototype = new google.maps.OverlayView(); 

MyOverlay.prototype.position_changed = function() { 
    this.draw(); 
}; 

MyOverLay.prototype.draw = function() { 
    // This is where you recalculate the latLngToPixel stuff where latLng 
    // is this.get('position'); 
}; 

나머지 OverlayView 인터페이스 (onAdd 및 onRemove)도 구현해야합니다.

+0

가정이 옳았고 당시 내가 제공 한 것과 유사한 솔루션을 사용했습니다. 감사! – aarreoskari

관련 문제