Ich verwende Leaflet und Leaflet.draw, um eine Karte zu erstellen. Wenn ich ein Rechteck auf der Karte zeichne (als Benutzer), schreibt der folgende Code die LatLng-Grenzen des Rechtecks.So bearbeiten Sie ein Popup in Leaflet.draw
// add the newly drawn items to a layer
map.on('draw:created', function (e) {
var type = e.layerType,
layer = e.layer;
// binds things upon creation
if (type === 'rectangle') {
var bounds = layer.getBounds();
layer.bindPopup(bounds.getNorthWest().toString() + "NW" + bounds.getSouthEast().toString() + "SE");
}
drawnItems.addLayer(layer);
});
Ich möchte dies aktualisieren, wenn das Rechteck vom Benutzer bearbeitet wird. Ich denke, dass so etwas mit dem 'draw: edited' -Ereignis und '_popup.SetContent' aktualisiert werden sollte, aber das LatLng in dem wird nicht aktualisiert.
// update LatLng when edited
map.on('draw:edited', function (e) {
var type = e.layerType,
layer = e.layer;
// update popup
if (type === 'rectangle') {
var bounds = layer.getBounds();
layer._popup.SetContent(bounds.getNorthWest().toString() + "NW" + bounds.getSouthEast().toString() + "SE");
}
});
Hinzufügen, dass zweiter Codeblock bedeutet auch, dass ich nur das erste Rechteck jemals geschaffen bearbeiten kann. Es funktioniert also eindeutig nicht, aber ich weiß nicht warum.