Henrique: Kreise oder Bilder auf OSM Karte lassen sich nicht removen

Beitrag lesen

Danke Matthias.

Ich war unterwegs, nun befasse ich mich wieder mit dieser Problematik und mit den DOM-Manipulationen als Lösung.

Leider fand ich keine Beispiele die näher am Problem wären. Der folgende code (bitte nicht laut lachen) tut dasselbe wie vorher: erzeugt popup und Kreis beim Klicken, löscht aber nur popup.

Die Kopplung parent/child ist mir nicht gelungen, sie ist mir in der Kodierung zu abstrakt. Die Auskommentierungen zeigen dass ich mich bemüht habe.

Bitte nochmals um Tipps, Danke im Voraus.

Henrique

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Munich Orientation Convention</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7.2/leaflet.css" />
<style type="text/css">
#map { height: 60%; }
</style>
</head>
<body> 
<div id="map" style="width: 1000px; height: 600px"></div>
<script src="http://cdn.leafletjs.com/leaflet-0.7.2/leaflet.js"></script>
<script src="FileSaver.js"></script>
<script>
var poleLat = 3.8614;
poleLon = 11.5205; 
var map = L.map('map').setView([poleLat, poleLon], 11);
L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', 
            {attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'}
           ).addTo(map);

document.addEventListener('DOMContentLoaded', function () {
  var popup = L.popup();
  map.on('click', onMapClick);

	function onMapClick(e) {
	
    var myCircle = new L.circle([e.latlng.lat, e.latlng.lng], 3000, {color: 'red', fillOpacity: 0, weight:2});
    popup.setLatLng(e.latlng).setContent("here").openOn(map);
//   var parent = popup.parentNode; 

    document.appendChild(myCircle);

    myCircle.addTo(map); 	// .addTo(popup) wäre zu einfach

    document.addEventListener('click', removeElement);	
  }   //onMap click 
});  // DOMcontentLoaded
	
	  
  function removeElement(e) {
    
    var myCircle = e.target;              //var elem = e.target;
    var body = document.querySelector('body');
 
    if (body != myCircle) {
      var parent = popup.parentNode;     //var parent = elem.parentNode;
      parent.removeChild(myCircle);         //parent.removeChild(elem);
      return false;
    }  
  } 
</script>
</body>
</html>