1

현재 마커 오버레이를 지우고지도 경계 내에서 마커를 다시 생성하는 수신기가 bounds_changed입니다.Google지도에서 마커가 event.addlistener를 클릭 함을 감지했습니다.

그러나 마커를 클릭하고지도가 움직일 때마다 정보창이 표시되지 않습니다. 닦은 이후로. if 문을 다음에 표시하여 마커를 클릭 한 경우이를 감지하고 아무 것도 수행하지 않으면 clearOverlayscreateMarkers을 어떻게 표시합니까? 예를

if(marker.click) { 
} else { 
    clearOverlays(); 
    createMarkers(map, mgr);  
}   

최종 작업 코드에 대한

google.maps.event.addListener(map, 'bounds_changed', function() { 
     //alert(map.getBounds()); 
     clearOverlays(); 
     createMarkers(map, mgr);   
    }); 

.

google.maps.event.addListener(map, 'bounds_changed', function() { 
     if(checkevent == false) 
     { 
      //alert(checkevent); 
      clearOverlays(); 
      createMarkers(map, mgr);   
     } 
    }); 

및 마커에 대한 청취자의

, 당신은 마커 클릭 이벤트에 대한 리스너가 가정

google.maps.event.addListener(marker5, 'click', function() { checkevent = true; infowindow5.open(map,marker5); setTimeout('checkevent = false', 3000); }); 

답변

2

을 클릭하여 상태 변수는 이벤트 리스너에 외부 범위 설정합니다. bounds_changed 리스너에서 상태 변수를 확인하십시오. 항상 bound_changed 리스너의 끝에서 상태 변수를 재설정하십시오.

+0

우수 아이디어. – Prescient

+0

checkevent 변수를 false로 설정했습니다. 그런 다음 청취자 이벤트에 checkevent = true를 추가하고 끝 부분에 checkevent = false를 추가하십시오. 부드럽게 fyi 작업을하려면 약 3 초의 제한 시간을 설정해야했습니다. 하지만 그렇지 않으면 매력처럼 작동합니다! 감사합니다. – Prescient

관련 문제