2012-05-16 6 views
3

내 위치의 아이콘을 드래그하면 반경으로 작업하므로 다른 아이콘이 업데이트됩니다. 따라서 내 위치를 드래그하면 반지름 밖에있는 마커가 삭제되고 반경 안에 마커가 추가됩니다. 이 작업을 수행하지만 8 배 정도의 동일한 마커를 계속 추가합니다. 물론 아무도 필요하지 않습니다.Google지도 v3 - 드래그 할 때 마커 업데이트

google.maps.event.addListener(marker, 'drag', function() { 
geocoder.geocode({'latLng': marker.getPosition()}, function(results, status) { 
    if (status == google.maps.GeocoderStatus.OK) { 
     if (results[0]) 
     { 
      $('#address').val(results[0].formatted_address); 
      ownlat = marker.getPosition().lat(); 
      ownlng = marker.getPosition().lng(); 
      clearOverlays(); //deletes old markers 
      getevents(); //adds new markers 
     } 
    } 
});    

});

+0

'getevents() '는 어떻게됩니까? 나는 8x 반복이 거기에 있다고 생각한다. –

+0

getevents()는 다른 이벤트 (예 : 반지름 변경 또는 버튼 클릭)에 사용되며 모두 잘 작동한다. –

+0

신경 쓰지 마라, 나는 벌써 그것을 얻었다. eventlistener에서 'drag'대신 'dragend'에 이벤트를 설정해야합니다. –

답변

2

마커를 드래그하는 동안 '끌기'이벤트가 반복적으로 발생한다고 API 문서에 설명되어 있습니다. 그래서 나는 getevents()을 연속적으로 여러 번 호출한다고 생각했습니다.

지오 코더가 실행되는 동안 마커가 나타날 때까지 지연 될 수 있다는 단점이 있으므로 '드래그 앤드'를 사용해야합니다. (문제가되는 경우 지오 코더 호출 외부에서 getevents를 남겨 두십시오.)

+0

그래, 작동합니다. 감사! –

+0

@GeoffreyVerhulst 위대한 분! 받아주세요? (체크 표시 개요를 클릭하십시오) –

관련 문제