I am using Leaflet map. I am trying to have a popup message which shows the coordinates on drawn polygon. However when I am trying to edit the drawn polygon using the edit layer the coordinates in the popup is not updating it will still read the initial drawing:
map.on(L.Draw.Event.CREATED, (e) => {
var type = e.layerType,
layer = e.layer;
if (type === 'rectangle' || type === 'polygon') {
var latlngs = layer.getLatLngs()[0];
var coordinates = latlngs.map(coord => [coord.lng, coord.lat]);
var popupContent = '<p>Coordinates:</p><pre>' + JSON.stringify(coordinates, null, 2) + '</pre>';
var popup = layer.bindPopup(popupContent);
console.log("Created Event - Initial Coordinates:", popupContent);
layer.on('editable:vertex:drag', (e) => {
var editedLayer = e.layer;
var editedCoordinates = editedLayer.getLatLngs()[0].map(coord => [coord.lng, coord.lat]);
var updatedPopupContent = '<p>Coordinates:</p><pre>' + JSON.stringify(editedCoordinates, null, 2) + '</pre>';
popup.setContent(updatedPopupContent);
console.log("Editable Vertex Drag Event - Updated Coordinates:", updatedPopupContent);
});
}
editableLayers.addLayer(layer);
});
Best Answer
I'm not very familiar with
Leaflet.draw
plugin and so also not with theeditable:vertex:drag
event. Instead of it I usededit
event and that worked.Here is the code that worked: