2010-12-10 3 views
2

Das ist mein Code. Aber ich weiß nicht, wie ich das Markt-Dragend-Event nutzen soll. Was fügen Sie dem Ereignis-Listener hinzu, sodass immer dann eine Warnung angezeigt wird, wenn der Marker an einen neuen Ort gezogen wird?Wie melde ich die Breite und Länge von Google Maps, wenn der Markt gezogen wird?

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){ 

     }); 

Antwort

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; 
}); 

und wenn Sie aufmerksam zu machen möchten, einfachste Weg ist, benutzen Sie einfach regelmäßig modalen Popup.

+1

wie kommt es nicht funktioniert? Ich kann nicht einmal Alarm ("Hallo") nach dem Zuhörer machen. Es ist so, als ob es nicht richtig bindet. – TIMEX

+0

Basierend auf Ihrem Code wird das Map- und Marker-Objekt in $ deklariert ("# geocodesubmit"). Klicken Sie auf (...). Der 'google.maps.event.addListener' sollte nach 'var marker = new google.maps.Marker (...)' stehen – Bonshington

Verwandte Themen