stiller: google Maps, RemoveOverlay funktioniert nicht

Hallo
Beim Klick auf ein Marker öffne ich die Infobox und zeichen ein Kreis.
Nun möchte ich beim Schliessen diesen Kreis wieder ausblenden.

Mein Code:

  
var map;  
var lumkreis;  
 function drawCircle(lat, lng, radius, strokeColor, strokeWidth,  
strokeOpacity, fillColor, fillOpacity) {  
      var d2r = Math.PI/180;  
      var r2d = 180/Math.PI;  
      var Clat = radius * 0.014483;  // Convert statute miles into degrees latitude  
      var Clng = Clat/Math.cos(lat*d2r);  
      var Cpoints = [];  
      for (var i=0; i < 33; i++) {  
        var theta = Math.PI * (i/16);  
        Cy = lat + (Clat * Math.sin(theta));  
        Cx = lng + (Clng * Math.cos(theta));  
        var P = new GLatLng(Cy, Cx);  
        Cpoints.push(P);  
      }  
      var polygon = new GPolygon(Cpoints, strokeColor, strokeWidth, strokeOpacity, fillColor, fillOpacity);  
      lumkreis = map.addOverlay(polygon);  
     }  
  
 function load() {  
                 if (GBrowserIsCompatible()) {  
                 map = new GMap2(document.getElementById("map"));  
                 map.setCenter(new GLatLng(46.817918027732226, 8.24228669051081), 8);  
                 map.setMapType(G_HYBRID_MAP);  
                 map.setUIToDefault();  
                 var point1 = new GPoint(8.6383103041907,47.6182092440135);  
                 var beck1 = new GMarker(point1);  
                 map.addOverlay(beck1);  
  
                 GEvent.addListener(beck1, 'click', function() {  
                 beck1.openInfoWindowHtml('<span style="font-size:10px;color:#000000;">Int. Kunden-Nr.: 0<br /><strong>Mr. Been</strong><br />8460 Marthalen<br /><br />Art: H&auml;ndler<br />Masslieferung seit: 12.6.2010<br />Umsatz: 12,000,000.00<br />Lieferkreis: 150 km</span>');  
                 drawCircle(47.6182092440135,8.6383103041907, 94, "#000080", 1, 0.75, "#0000FF",.5);  
                                                                                                        });  
                  GEvent.addListener(beck1, 'infowindowclose', function() {  
                     map.removeOverlay(lumkreis);  
                 });  
  
  
                var point2 = new GPoint(10.21268935,46.765501);  
                var beck2 = new GMarker(point2);  
                map.addOverlay(beck2);  
                GEvent.addListener(beck2, 'click', function() {  
                   beck2.openInfoWindowHtml('<span style="font-size: 10px;color:#000000;">Int. Kunden-Nr.: 0<br /><strong>0000 aaaaa</strong><br />8888 Z&uuml;ri<br /><br />Masslieferung seit: 1.1.2011<br />Umsatz: 0.00<br />Lieferkreis: 0 km</span>');  
                });  
               GEvent.addListener(beck2, 'infowindowclose', function() {  
               map.removeOverlay(lumkreis);  
                  });  
                }  
    } 

Hat jemand eine Ahnung warum das mit map.removeOverlay nicht funktioniert?

Danke für eure Hilfe.
Gruss
Tom

  1. Hallo stiller,

    var polygon = new GPolygon(Cpoints, strokeColor, strokeWidth, strokeOpacity, fillColor, fillOpacity);
          lumkreis = map.addOverlay(polygon);

    map.removeOverlay(lumkreis);

    die Referenz auf das Polygon steckt in polygon und nicht in lumkreis, daher removest du nicht das richtige. versuch mal

    lumkreis  = new GPolygon(Cpoints, strokeColor, strokeWidth, strokeOpacity, fillColor, fillOpacity);
           map.addOverlay(lumkreis);

    map.removeOverlay(lumkreis);

    Gruß, Jürgen

    1. Hallo Jürgen

      Danke für deine Antwort.

      var polygon = new GPolygon(Cpoints, strokeColor, strokeWidth, strokeOpacity, fillColor, fillOpacity);
            lumkreis = map.addOverlay(polygon);

      map.removeOverlay(lumkreis);

      die Referenz auf das Polygon steckt in polygon und nicht in lumkreis, daher removest du nicht das richtige. versuch mal

      lumkreis  = new GPolygon(Cpoints, strokeColor, strokeWidth, strokeOpacity, fillColor, fillOpacity);
             map.addOverlay(lumkreis);

      map.removeOverlay(lumkreis);

      Leider gehts noch nicht. Ich bekomme immer die Meldung "lumkreis is not defined". Kann es irgendwie damit zusammenhängen das die variable nur in der Polygon-Funktion gültig ist? Ich definiere sie aber doch am Anfang mit var lumkreis.

      Gruss
      Thomas

      1. Hallo stiller,

        Leider gehts noch nicht. Ich bekomme immer die Meldung "lumkreis is not defined". Kann es irgendwie damit zusammenhängen das die variable nur in der Polygon-Funktion gültig ist? Ich definiere sie aber doch am Anfang mit var lumkreis.

        wahrscheinlich, aber ohne Code oder Link zur Beispielseite kann ich da nichts zu sagen. Kennst du den Unterschied zwischen lokalen und globalen Variablen?

        "var x" in einer Funktion macht x zur lokalen Variablen, ohne var wird die Variable im Kontext von "window", also global angelegt.

        Gruß, Jürgen

        1. Guten Morgen Jürgen

          "var x" in einer Funktion macht x zur lokalen Variablen, ohne var wird die Variable im Kontext von "window", also global angelegt.

          Vielen Dank! Du hast mir gerade die Lösung gegeben - ein kleines var weg und es funktioniert. Ich dachte das verhalte sich gleich umgekehrt.

          Schönen Tag + Gruss
          Stiller