1

Google지도 API의 v2를 사용하는 애플리케이션을 v3으로 변환 중입니다. 이 일환으로 MarkerManager를 v3 버전으로 업그레이드해야했습니다.Google지도 API v3 : 확대/축소까지 표시되지 않는 마커 크기 표시

사용자가지도를 확대/축소 할 때까지 마커가 표시되지 않는 이상한 문제가 있습니다.

원래 확대/축소 수준으로 다시 확대하면 마커가 그대로 남아있어 최대 \ 확대 축소 문제가 아닙니다. firebug \ javascript 콘솔에 오류가보고되지 않습니다. 마커가 추가 된 위치에 중단 점이나 console.log를 넣으면 확실히 추가됩니다.

이 애플리케이션은 상당히 큰, 그래서 여기에 모든 소스를 넣을 수는 없지만, 다음과 같이 마커가 추가 된 코드는 다음과 같습니다

console.log("Adding Marker"); 
    markerManager.addMarker(marker, 1, 19); 
    markerManager.refresh(); 

그리고 marker가 생성 된 코드가 비슷합니다 이 :

 var latLng = new google.maps.LatLng(y, x); 
     var marker = new MarkerWithLabel({ 
      position: latLng, 
      title: "title", 
      labelClass: "marker", 
      labelContent: "Test", 
      icon: icon, 
      labelAnchor: new google.maps.Point(26, 32) 
     }); 

icon 그냥 google.maps.MarkerImage입니다.

http://google-maps-utility-library-v3.googlecode.com/svn/tags/markermanager/1.0/docs/reference.html

http://google-maps-utility-library-v3.googlecode.com/svn/tags/markerwithlabel/1.1.7/docs/reference.html

편집 : 나는 다음과 같은 한을 만든 후 마커 관리자와 아무것도하기 전에를 추가해야합니다, 그래서 추가하려고하고 있지 않다 MarkerManager 및 MarkerWithLabel 여기에 설명되어 있습니다 로드 될 때까지 무엇이든 :

google.maps.event.addListenerOnce(markerManager, 'loaded', function() { 

내 실수가있을 가능성이있는 사람은 누구입니까?

답변

0

이 문제를 해결할 수있는 방법을 찾았지만 다른 결과가있을 수 있습니다. 기본적으로 markermanager.js에서 다음을 대체했습니다 (~ 130 행).

google.maps.event.addListener(map, 'dragend', function() { 
    me.onMapMoveEnd_(); 
}); 
google.maps.event.addListener(map, 'zoom_changed', function() { 
    me.onMapMoveEnd_(); 
}); 

이렇게하면 마커가 예상대로 나타납니다. markermanager 보면이

google.maps.event.addListener(map, 'idle', function() { 
    me.onMapMoveEnd_(); 
}); 

편집을하는 영향을 내가 markermanager 파일을 편집 할 수 없습니다 원합니다 나는 성능의 확인 (또는 다른) 아니에요 나는 아직도 다른 아이디어에 열려있어 .js dev 버전에는 3 가지 이벤트가 모두 들어 있습니다. 따라서 누군가 다른 사람이이 문제를 가지고 있다면 v1.1을 사용할 가치가 있습니다.

http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markermanager/src/markermanager.js