2014-01-22 3 views
-1

지도를 클릭 할 때까지 마커를 숨기려고합니다.Google지도에서 일정에 마커 드롭

청취자를 제거하면 마커가 있어야하며 모든 것이 작동합니다. 마커를 추가하면 영구적으로 사라집니다.

Google api와 여러 웹 사이트 (이 웹 사이트 포함)를 살펴 보았습니다. 내 룸메이트도 살펴 보았습니다. 제대로 작동하지 않는 것 같습니다.

내 이해는 브라우저가 약간 다른 방식으로 이벤트를 처리하므로이 경우 '클릭'이 Google 특정 문제이므로 이해하는 것이 문제 일 수 있습니다.

도움을 주시면 대단히 감사하겠습니다.

var myCenter=new google.maps.LatLng(55.680313, 12.548468); 

function initialize() 
{ 
var mapProp = { 

    center:myCenter, 
    zoom:15, 
    mapTypeId:google.maps.MapTypeId.ROADMAP 
    }; 

var map=new google.maps.Map(document.getElementById("googleMap"),mapProp); 

google.maps.event.addListener(map, 'rightclick', function(event) { 

    var marker=new google.maps.Marker({ 

      position:myCenter, 
      animation:google.maps.Animation.DROP 

      }); 
}); 

marker.setMap(map); 
} 

google.maps.event.addDomListener(window, 'load', initialize); 

답변

0

왜 맵 컨테이너에 이벤트를 바인드하지 않습니까?

document.getElementById("googleMap").onmousedown = function(e) { 
    if ((e.which && e.which == 3) || (e.button && e.button == 2)) { 
     var marker=new google.maps.Marker({ 
      position:myCenter, 
      animation:google.maps.Animation.DROP 
     }); 
     document.getElementById("googleMap").onmousedown = undefined; 
    } 
} 

우리는 첫 번째 클릭 후 생성 마커를 사용하지 undefinedonclick을 설정합니다.

UPD : 죄송합니다. 주의 할 점은 마우스 오른쪽 버튼으로 바인드해야한다는 것입니다. 업데이트 된 코드.

marker.setMap(map); 

변경 :

google.maps.event.addListener(map, 'rightclick', function(event) { 
    var marker=new google.maps.Marker({ 

      position:myCenter, 
      animation:google.maps.Animation.DROP 

      }); 
}); 

marker.setMap(map); 

사람 :

google.maps.event.addListener(map, 'rightclick', function(event) { 
    var marker=new google.maps.Marker({ 
      position:myCenter, 
      animation:google.maps.Animation.DROP 
      }); 
    marker.setMap(map); 
}); 
이 라인에

Uncaught ReferenceError: marker is not defined 

:

+0

난이 단지 하나의 라인을 변경 나에게 필요하기 때문에 geocodezips 솔루션을 사용하여 결국,하지만 난 그냥 때문에이 시도하고 너무 잘했다. 고마워요. – user2945025

1

나는 자바 스크립트 오류

또는 :

google.maps.event.addListener(map, 'rightclick', function(event) { 
    var marker=new google.maps.Marker({ 
      map: map, 
      position:myCenter, 
      animation:google.maps.Animation.DROP 
      }); 
}); 

working example

+0

나는 그렇게 오래 그리워 했다니 믿을 수가 없네! 완벽하게 지금 일하고있어! tyvm – user2945025

+0

이 질문에 대한 답변을 [accept it] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) (또는 적어도 upvote ...) – geocodezip

+0

는 DOM eventListener가 아니라 map eventListener를 사용하기 때문에 upvoted됩니다. map api와 dom api를 섞어서는 안됩니다. – allenhwkim

관련 문제