2010-12-10 3 views
2

이것은 내 코드입니다. 그러나 Market dragend 이벤트를 사용하는 방법을 모르겠습니다. 마커가 새로운 위치로 드래그 될 때마다 경고가 팝업되도록 이벤트 리스너에 무엇을 추가합니까?시장을 드래그하면 Google지도의 위도와 경도를 어떻게 알 수 있습니까?

var geocoder = new google.maps.Geocoder(); 
     var myLatlng = new google.maps.LatLng(39.97389, -23.968563); 
     var myOptions = { 
     zoom: 15, 
     center: myLatlng, 
     mapTypeControl:false, 
     mapTypeId: google.maps.MapTypeId.ROADMAP, 
     scrollwheel:false, 
     }; 
     var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
     $("#map_canvas").hide(); 

     $("#geocodesubmit").click(function(){ 
      $("#id_lat").val(""); 
      $("#id_long").val(""); 
      var address = $("#id_address_input").val();   geocoder.geocode({ 'address': address}, function(results, status) { 
      if (status == google.maps.GeocoderStatus.OK) { 
       $("#badlocation_holder").hide();    $("#map_canvas").show(); 
       $("#map_canvas_holder").show().css("background-color", "#E6E6FA").animate({" 
background-color":"#f5f5f5"}, 800); 
       ; 
       var map = new google.maps.Map(document.getElementById("map_canvas"), myOptio 
ns); 
       map.setCenter(results[0].geometry.location); 
       $("#id_lat").val(results[0].geometry.location.lat()); 
       $("#id_long").val(results[0].geometry.location.lng()); 
       var marker = new google.maps.Marker({ 
        map: map, 
        position: results[0].geometry.location, 
        draggable:true 
       });    } else { 
        $("#id_lat").val(""); 
        $("#id_long").val(""); 
        $("#map_canvas_holder").hide(); 
        $("#badlocation_holder").show().css("background-color","#F08080").animate(
{"background-color":"#f5f5f5"},800); 
       } 
      }); 
      return false; 
     }); 

     google.maps.event.addListener(marker, "dragend", function(e){ 

     }); 

답변

6
var oldLat = marker.getPosition().lat(); 
var oldLng = marker.getPosition().lng(); 

google.maps.event.addListener(marker, "dragend", function(e){ 
var newLat = marker.getPosition().lat(); 
var newLng = marker.getPosition().lng(); 

if(oldLat != newLat || oldLng != newLng) 
    alert("its changed"); 
    // or $("div#modal").html("its changed !!").show(); 

oldLat = newLat; 
oldLng = newLng; 
}); 

하고 경고를 할 경우, 가장 쉬운 방법은 그냥 일반 모달 팝업을 사용합니다.

+1

어떻게 작동하지 않습니까? 나는 심지어 경청자 ("안녕하세요")를 듣는 사람 후에 할 수 없다. 마치 바운드에 얽매이지 않는 것과 같습니다. – TIMEX

+0

코드에 따라지도 및 표식 개체는 $ ("# geocodesubmit"), 클릭 (...)으로 선언됩니다. 'google.maps.event.addListener'는 'var marker = new google.maps.Marker (...)'뒤에 와야합니다. – Bonshington

관련 문제