Creé una función que dibuja un rectángulo delimitador en el mapa. Cuando uso crear una nueva función de rectángulo que viene con el folleto, el rectángulo dibujado manualmente no se borra. ¿Cómo borrar el rectángulo dibujado manualmente cuando alguien usa crear un nuevo rectángulo?
function drawRectangle(){
var north = document.getElementById("north").value; var west = document.getElementById("west").value; var east = document.getElementById("east").value; var south = document.getElementById("south").value; var lat_lon = [[north,east],[south,west]]; var rectangle = L.rectangle(lat_lon, { draggable: true ,redraw:true}); rectangle.addTo(map); map.fitBounds(rectangle.getBounds()); }Si declara un rectángulo fuera de la función dibujarRectángulo, puede eliminarlo del mapa antes de dibujar el siguiente rectángulo:
var rectangle; function drawRectangle() { if(rectangle) rectangle.remove(map) var north = document.getElementById("north").value; var west = document.getElementById("west").value; var east = document.getElementById("east").value; var south = document.getElementById("south").value; var lat_lon = [[north,east],[south,west]]; rectangle = L.rectangle(lat_lon, { draggable: true ,redraw:true}); rectangle.addTo(map); map.fitBounds(rectangle.getBounds()); }O si desea que se elimine cuando haga clic en el botón del rectángulo, coloque esa lógica en el controlador de eventos:
map.on('editable:drawing:move', function (e) { if(rectangle) rectangle.remove(map) });