2011-01-08 13 views
2

Verzeihen Sie meine Noobishness, aber, obwohl ich dieses Thema besprochen habe, habe ich keine Antwort gefunden. Ich versuche, konzentrische Kreise auf einer Google Map mit der API v3 zu zeichnen, so dass jeder Klick auf ein Bullseye-Ziel klickbar ist, aber immer der Größte landet oben, was bedeutet, dass es der einzige anklickbare ist.zIndex ändert nicht die z-Reihenfolge für Kreise mit Google Maps API

Im Folgenden wird ein Array namens "Subjects" verwendet, das aus zunehmenden Radien und verschiedenen Füllfarben besteht.

for (i=0;i<subjects.length;i++) { 
radi = subjects[i][0]; 
fillcolr = subjects[i][1]; 
zindx = subjects.length - i; 
newcircle = new google.maps.Circle({ 
     radius: radi, 
     center: centerPoint, 
     strokeWidth: 1, 
     fillOpacity: 1.0, 
     fillColor: fillcolr, 
     zIndex: zindx 
    }); 
    // display it 
    newcircle.setMap(map); 
    // make outer circle clickable 
    google.maps.event.addListener(newcircle, 'click', function() { 
       circleClickedInfo(i); 
     }); 

Die Kreise sind, die zIndex gesetzt, aber der größte Kreis ist immer an der Spitze. Ich habe versucht, zIndex nachher auf einen Durchlauf zu setzen, jeden zIndex um 10000 zu erhöhen, die Reihenfolge umzukehren, in der ich die Kreise erstelle, den zIndex nicht explizit setze usw. Ich bin sicher, dass ich etwas Offensichtliches vermisse (siehe die oben erwähnte Noobishness), aber ich kann nicht herausfinden, was es ist. TIA für alle Hinweise ...

+0

keine Antwort, aber ich bin das gleiche Problem haben. [Hier] (https://gist.github.com/791344) ist ein vollständiges, minimales Beispiel (github gist), das das unerwartete Verhalten zeigt, und [hier] (http://sonzona.dyndns.org/zIndexTest.html) ein Live-Beispiel. Wer weiß, was los ist? – mgalgs

Antwort

1

Versuchen Sie dies für jede Form, die Sie brauchen:

selectedShape.setOptions({zIndex:0});