2010-02-26 4 views
0

Google지도 앱에 다음 코드가 있습니다. 원하는 것은 마커를 클릭하거나 드래그하여 점 (마커)의 새 위치 (LatLong)를 가져올 수 있습니다.Google지도 마커를 끌 때 클릭하는 방법

내가 그 종류의 어떤 것을 할 때 나는 37.4419, -122.1419의 좌표를 얻는다. 그것이 센터로 지정되어 있기 때문에 이것이라고 확신합니다. 클릭/방금 방아쇠를 당긴/마킹 된 이벤트/마커의 좌표를 얻으려면 어떻게해야합니까?

Javascript와 Google maps API를 모두 사용하여 매우 실망 스럽습니다.

코드 :

 var map = null; 
    var geocoder = null; 
    var zoom = 15; 
    var first_point = false; 
    var boundary = new Array(); 
    var cCount = 0; 

    var point1; 
    var point2; 

    function initialize() { 
     if (GBrowserIsCompatible()) { 
      first_point = false; 
      map = new GMap2(document.getElementById("map_canvas")); 
      var center = new GLatLng(37.4419, -122.1419); 
      map.setCenter(center, zoom); 

      GEvent.addListener(map, "click", function(overlay,point) 
      { 
       if (overlay != null) 
       {} 
       else 
       { 
        var n = boundary.length; 

        switch (cCount) 
        { 
         case 0: 
          point1 = new GMarker(point,{draggable: true}); 
          map.addOverlay(point1); 
          cCount++; 
          GEvent.addListener(point1, "dragend", function() 
           { 
            alert('P1 Dragged: '+point); 
           }); 

          break; 
         case 1: 
          point2 = new GMarker(point,{draggable: true}); 
          map.addOverlay(point2); 
          cCount++; 
          GEvent.addListener(point2, "dragend", function() 
           { 
            alert('P2 Dragged: '+point); 
           }); 
          break; 
         case 2: 
          map.clearOverlays(); 
          cCount=0; 
          break; 
        } 
       } 
      }); 
     } 
    } 

UPDATE :이 문제를 해결했다. GMarker 객체와 관련하여 끌기, 클릭 및 기타 이벤트는 GLatLng 객체를 매개 변수로 전달합니다. 그래서 요점을 얻고 싶다면 param.lat() 또는 param.lng()를 호출합니다. 여기에 코드를 참조하십시오

       GEvent.addListener(point2, "dragend", function(pnt) 
           { 
            alert('P2 Dragged: '+pnt.lat()+" , "+pnt.lng()); 
            document.getElementById("point2").innerHTML=""; 
            document.getElementById("point2").innerHTML=point; 
           }); 

답변

1

업데이트를 : 나는이 문제를 해결했다. GMarker 객체와 관련하여 끌기, 클릭 및 기타 이벤트는 GLatLng 객체를 매개 변수로 전달합니다. 그래서 요점을 얻고 싶다면 param.lat() 또는 param.lng()를 호출합니다. 다음 코드를 참조하십시오 :

      GEvent.addListener(point2, "dragend", function(pnt) 
          { 
           alert('P2 Dragged: '+pnt.lat()+" , "+pnt.lng()); 
           document.getElementById("point2").innerHTML=""; 
           document.getElementById("point2").innerHTML=point; 
          }); 
1

보십시오 예를 들어, 당신의 리스너 함수에 overlaypoint PARAMS을 추가 :

GEvent.addListener(point2, "dragend", function(overlay, point) 
{ 
    alert('P2 Dragged: '+point); 
}); 
+0

작동하지 않는 것 같습니다. 노력해 줘서 고마워. – conor

+0

이상하게 들리면 새 초기화 코드를 보여 주시겠습니까? – antyrat

+0

내가 한 모든 것은 오버레이를 추가하고 당신이 말한 것처럼 함수 매개 변수를 가리키는 것입니다. – conor

관련 문제