2012-08-07 11 views
21

Kiedy dodać więcej znaczników do Google Map z różnych typów ikon jak:google.maps.Marker zindex nie działa na dwóch rodzajach ikonę - symbol i String

... 
var marker = new google.maps.Marker({ 
      position: markerLatLng, 
      map: map, 
      icon: "http://www.test.com/marker.png", 
      zIndex: 10 
     }); 
... 

i

... 
var resultIcon = { 
      path: google.maps.SymbolPath.CIRCLE, 
      fillColor: "black", 
      strokeColor: "black", 
      strokeWeight: 1, 
     }; 

var marker = new google.maps.Marker({ 
      position: markerLatLng, 
      map: map, 
      icon: resultIcon, 
      zIndex: 5 
     }); 
... 

Następnie zIndex nie działa, a znacznik Symbol pojawia się na górze.

Czy nie mam racji z moim kodem lub jak mogę sprawić, że zIndex działa?

+0

Czy aplikacja działa poprawnie, gdy nie określono niestandardowe ikony? – jeff

Odpowiedz

46

Trzeba zarówno określić zIndex i dodać

optimized: false 

do każdy konstruktor markera, np.

var marker = new google.maps.Marker({ 
    position: markerLatLng, 
    map: map, 
    icon: resultIcon, 
    optimized: false, 
    zIndex: 5 
}) 

Wydaje się to być problem z nowym renderowania opartego na płótnie markerów.

Edit:

naprawdę to rozwiązuje problem. Należy jednak wspomnieć, że każdy znacznik musi mieć atrybut "optimized: false". Dopóki jeden znacznik go nie ma, nie zadziała.

Usuń wszystkie atrybuty "optimized: false" z skrzypiec LeJareda i napotkasz błąd.

http://jsfiddle.net/BNWYq/1/

+0

Tak, masz rację. Dzięki za poprawienie mojego skrzypiec. – LeJared

+0

To rozwiązanie działa z wdzięcznością dla mnie! :-) – kuceram

+0

Właśnie uratowałeś mi niezliczone godziny wyciągania włosów. –

0

Zrobiłem trochę fiddl: http://jsfiddle.net/gSRmV/

wygląda błędu, który ma być ustalony przez google.

Dodanie optimized: false niczego nie zmienia.

Edytuj: Nadal wygląda jak błąd, ale dwa rozwiązania z tborychowskiego i Codetoffela wydają się działać.

8

Ustawianie zindex okręgu do -99 wydaje się pomagać: http://jsfiddle.net/rq4vs/2/

+0

Hej, to też dobre rozwiązanie. Dzięki za naprawienie fiddl. – LeJared

+0

To działa dla mnie. –

+1

Uwaga: Problem z tym rozwiązaniem polega na tym, że symbol "kradnie" zdarzenia, takie jak przesuwanie kursora myszy i kliknięcie z obrazu, mimo że jest on wizualnie narysowany pod obrazem. Sprawdź to skrzypce, aby zobaczyć, jak wyświetla się etykietka narzędzia z okręgu zamiast etykiety narzędzia, nawet jeśli koło jest umieszczone pod pinezką: http://jsfiddle.net/AEePr/ Mam nadzieję, że Google rozwiąże to w dobrym sposób, ponieważ ustawienie optimized = false nie jest idealne we wszystkich przypadkach. –

Powiązane problemy