Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I get the latlng after the dragend event in leaflet?

Tags:

I'm trying to update the lat/lng value of a marker after it is moved. The example provided uses a popup window to display the lat/lng.

I have a "dragend" event listener for the marker, but when I alert the value of e.latlng it returns undefined.

javascript:

function markerDrag(e){     alert("You dragged to: " + e.latlng); }  function initialize() {     // Initialize the map     var map = L.map('map').setView([38.487, -75.641], 8);     L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {         attribution: 'Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>',         maxZoom: 18     }).addTo(map);      // Event Handlers     map.on('click', function(e){         var marker = new L.Marker(e.latlng, {draggable:true});         marker.bindPopup("<strong>"+e.latlng+"</strong>").addTo(map);          marker.on('dragend', markerDrag);     }); }   $(document).ready(initialize()); 

http://jsfiddle.net/rhewitt/Msrpq/4/

like image 775
Roy Avatar asked Aug 22 '13 14:08

Roy


1 Answers

Use e.target.getLatLng() to get the latlng of the updated position.

    // Script for adding marker on map click     function onMapClick(e) {          var marker = L.marker(e.latlng, {                  draggable:true,                  title:"Resource location",                  alt:"Resource Location",                  riseOnHover:true                 }).addTo(map)                   .bindPopup(e.latlng.toString()).openPopup();          // #12 : Update marker popup content on changing it's position         marker.on("dragend",function(e){              var chagedPos = e.target.getLatLng();             this.bindPopup(chagedPos.toString()).openPopup();          });     } 

JSFiddle demo

like image 150
Kedar.Aitawdekar Avatar answered Sep 25 '22 02:09

Kedar.Aitawdekar