2013-05-29 5 views
9

Ich versuche, eine Markierung zu platzieren, aber wenn ich es mache, wird diese Markierung hinter einigen Markierungen gesetzt, die vorher (und über einigen anderen) gesetzt wurden. Ich möchte es über alle Marker setzen, aber ich habe keine Eigenschaft (wie z-Index) gefunden, um dies zu erreichen.Setzen Sie eine Markierung über alle anderen Markierungen in Google Maps SDK iOS

Dies ist der Teil des Codes, wo ich die Markierung gesetzt, die sich hinter den anderen bleibt:

GMSMarker *marker = [[GMSMarker alloc] init]; 
marker.animated=YES; 
marker.position = CLLocationCoordinate2DMake(lat, lon); 
marker.map = mapView_; 

und das ist das Ergebnis:

Green marker is placed behind some blue markers and over other blue markers

Gibt es eine Eigenschaft oder Art und Weise den grünen Marker über alle blauen Marker setzen? Ich verwende Google Maps SDK Version 1.3.0.

Antwort

26

Dies wird jetzt über eine zIndex Eigenschaft unterstützt, die der GMSOverlay Klasse in Version 1.4.0 hinzugefügt wurde. Vom release notes:

Added eine zIndex Eigenschaft auf allen Overlays. Z-Indizes werden in zwei Gruppen berechnet: GMSMarker s und alle anderen Überlagerungen.

Setzen Sie einfach einen hohen Wert zIndex auf Ihren Marker, um ihn über alle anderen zu ziehen. Wie here von der Unterkunft Dokumentation angegeben:

Höheren zIndex Wert Overlays wird auf dem unteren zIndex Wert Fliesenleger und Overlays gezogen werden.

Der Standard zIndex für einen Marker ist 0 (zumindest in der aktuellen SDK-Version - ich habe es nicht gesehen dokumentiert, aber es ist einfach zu testen und bestätigen), so dass, wenn Sie nicht die zIndex Einstellung für die meisten Ihrer Marker und haben eine, die Sie über alle anderen platzieren möchten, ist alles, was Sie tun müssen:

yourGmsMarker.zIndex = 1; 
+0

Wenn Sie einen Marker auf einen anderen setzen möchten, setzen Sie den vorherigen zIndex unter 1 (sagen 0,8) und dann 1.0 –

Verwandte Themen