2015-03-10 9 views
18

Ich bin gerade von Apple Maps zu Google Maps gewechselt. Ein Problem, auf das ich keine Antwort finden kann, ist, wie Sie das Symbol für einen GMSMarker so einrichten, dass er nicht in der Mitte, sondern in der Mitte des Bildes beginnt.GMSMarker-Symbol von der Mitte (iOS)

Ein Beispiel für das, was ich meine, ist die aktuelle Position Punkt-Symbol beginnt um die Koordinaten zentriert, die es ausdrücken soll. Die Symbole von GMSMarkers beginnen jedoch am unteren Rand des Symbols.

Antwort

38

Sie können die Startposition Ihres Markierungssymbols mit der Eigenschaft groundAnchor ändern.

Google Maps-SDK für iOS Dokumentation:

Der Erdanker gibt den Punkt im Symbol Bild, das auf die Markierung der Position auf der Erdoberfläche verankert ist. Dieser Punkt wird im fortlaufenden Leerzeichen [0.0, 1.0] x [0.0, 1.0], angegeben, wobei (0,0) die obere linke Ecke des Bildes und (1,1) die unten rechts ist Ecke.

Beispiel:

Das folgende Beispiel dreht die Markierung 90 °. Wenn die Eigenschaft "groundAnchor " auf "0.5.0.5" gesetzt wird, wird der Marker um seine Mitte herum gedreht, anstelle seiner Basis.

CLLocationCoordinate2D position = CLLocationCoordinate2DMake(51.5, -0.127); 
CLLocationDegrees degrees = 90; 
GMSMarker *london = [GMSMarker markerWithPosition:position]; 
london.groundAnchor = CGPointMake(0.5, 0.5); 
london.rotation = degrees; 
london.map = mapView_; 
+0

gerettet mein Tag Bruder. Danke +1 –

+0

Danke Bruder. Nizza Antwort –

+0

Für diejenigen, die wollen einfach die Markierungsposition zu verschieben, alles, was Sie brauchen, ist 'yourMarker.groundAnchor = CGPoint (0,5, 0,5);' Dank @adboco! – Spencer

5

Ich habe herausgefunden, wie man es macht, nachdem man die Google Maps Dokumentation sehr genau gelesen hat. Ich glaube, so sollte es gemacht werden.

+0

habe ich versucht, diese Methode und es sieht aus wie es funktioniert, aber es bewirkt, dass einige unbeabsichtigte Nebenwirkungen ... dies zu tun * nicht die entnehmbare Bereich verschieben * so den Bereich außerhalb des rect ursprünglichen Marker nicht abgreifbar sein . – Spencer