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

Beitrag lesen

Hallo zusammen,

ich bin ein deutsch-brasilianischer Erfinder und habe ein Orientierungssystem entwickelt das auf imaginären Uhren basiert, siehe Video www.volksnav.de/aSimpleCircle

Nach vielen Jahren melde ich - ewiger Zauberlehrling - mich wieder. Ich habe ein online tool entwickelt zur Festlegung und Speicherung von Leitzahlen für Kreuzungen, Haltestellen, Brücken etc., siehe www.volksnav.cm/onlineGen. Funktioniert wie gewünscht: beim Klicken auf der Karte erscheint die Blase mit dem was man so braucht wenn man weiss dass die Postleitzahlen weltweit obsolet geworden sind.

Aus diversen Gründen will ich an derselben Stelle zusätzlich einen Kreis oder ein Bild einblenden - das aber wie die Blase beim nächsten Klick verschwindet. Habe alles versucht, aber der Zusatz wird nicht gelöscht. Habe auch versucht das mit einem externen Knopf zu erreichen. Vergebens. Kann mir jemand helfen?

Der bis zum Problem reduzierten code sieht so aus:

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Circle</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: 600px; height: 400px"></div> <script src="http://cdn.leafletjs.com/leaflet-0.7.2/leaflet.js"></script> 

<script> 
var map = L.map('map').setView([3.8614, 11.5205], 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); 

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}); 

   if(map.hasLayer(myCircle)){ 
      map.removeLayer(myCircle); 	// stört nicht, aber hilft nicht 
   }else{     
map.addLayer(myCircle); 	// funktioniert
   } 
  
} 
</script></body></html>