este es mi mapa , mi removeLayer en el mapa del folleto eliminar una vez ( eliminar imagen ) y, como se ve en la imagen, elimina el marcador perfectamente, pero cuando intento eliminarlo nuevamente, ¡no lo hace! la verificación no es verdadera, pero no se eliminó por segunda vez . aquí está la función que llamó desde la casilla de verificación:
function myFunction(id) { var marker = []; var checkBox = document.getElementById(id) var lat = checkBox.name; var lon = checkBox.value; var RN = checkBox.className; console.log(RN) var pop_cont = `<img id="icon" src="sample.jpg" alt="shipPIC"/><br><b>${RN}</b><br> latitude :${lat}<br>longitude: ${lon}` if (checkBox.checked == true) { marker = L.marker([lat, lon]).addTo(map); marker.setIcon(dish_icon); marker.bindPopup(pop_cont).openPopup(); console.log("checked") } else { marker = L.marker([lat, lon]) var x_id = L.stamp(markers); map.removeLayer(markers[id]); console.log("NOOOOT Check"); } }¡Muchas gracias!
Usted marca si la casilla de verificación está marcada. Significa que ha marcado y desmarcado mediante programación la casilla de verificación. Como eso. Comenté la parte del folleto.
function myFunction(id) { console.log(id) var marker = []; var checkBox = document.getElementById(id) var lat = checkBox.name; var lon = checkBox.value; var RN = checkBox.className; console.log(RN) var pop_cont = `<img id="icon" src="sample.jpg" alt="shipPIC"/><br><b>${RN}</b><br> latitude :${lat}<br>longitude: ${lon}` if (checkBox.checked == true) { //marker = L.marker([lat, lon]).addTo(map); //marker.setIcon(dish_icon); //marker.bindPopup(pop_cont).openPopup(); console.log("checked") checkBox.checked = false; } else { //marker = L.marker([lat, lon]) //var x_id = L.stamp(markers); //map.removeLayer(markers[id]); console.log("NOOOOT Check"); checkBox.checked = true; } } <button onclick="myFunction('vehicle1')">klick</button> <input type="checkbox" id="vehicle1" name="vehicle1" value="Bike">