드래그 후 Google Maps V3에서 사용자 정의 InfoWindows의 픽셀 위치를 업데이트하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1868663

문제

Google지도 위에 새 매시업을 만들고 있습니다. 더 긴 수명을 제공하기 위해 V3를 사용하기로 선택한 것은 간단합니다.

그러나 Google Maps Infowindow가 제공하지 않는 특별한 요구가 있습니다.

마커.projectioncontainer.pixelPosition으로 내 맞춤형 정보를 배치했습니다. 축소 후 올바른 위치를 얻지 만 드래그는 마커 픽셀 위치를 업데이트하지 않습니다. 마커 오래된 위치와 드래그 후 새로 차이를 얻을 수있는 방법은 무엇입니까?

또는

내가 사용해야할까요 오버레이 뷰 Dom에서 위치를 해킹하려는 대신? Maps의 자체 인포 노도우는 패널에 자동으로 업데이트/주차되어 있다고 생각합니다.

도움이 되었습니까?

해결책

이 답변은 드래그로 마커를 끌고지도를 끌지 않는다는 것을 의미한다고 가정합니다. 그렇지 않은지 알려주세요.

오버레이 뷰를 사용한 다음 MVC 기술을 사용하여 마커의 위치 속성에 바인딩 할 수 있습니다.

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');
};

또한 OrdayView 인터페이스의 나머지 부분 인 OnAdd 및 OnRemove도 구현해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top