2015-03-10 27 views
18

Właśnie przełączyłam się z Apple Maps na Google Maps. Problem, na który nie mogę znaleźć odpowiedzi, polega na tym, jak sprawić, aby ikona GMSMarker zaczynała się od centrum, a nie od dołu obrazu.Ikona GMSMarker z centrum (iOS)

Przykładem tego, co mam na myśli jest ikona kropki bieżącej lokalizacji zaczyna się na środku współrzędnych, które ma wyrażać. Jednak ikony GMSMarkers zaczynają się od dołu ikony.

Odpowiedz

38

Możesz zmienić pozycję początkową swojej ikony znacznika za pomocą właściwości groundAnchor.

Google Maps SDK dla iOS dokumentacji:

Kotwa ziemia określa punkt w obrazie ikonę, która jest zakotwiczona do położenia znacznika na powierzchni Ziemi. Ten punkt jest określony w przestrzeni ciągłej [0,0, 1,0] x [0,0, 1,0], gdzie (0,0) jest lewym górnym rogiem obrazu, a (1,1) jest w prawym dolnym rogu kąt.

Przykład:

Poniższy przykład obraca Marker 90 °. Ustawienie właściwości GroundAnchor na 0.5,0.5 powoduje obrócenie znacznika wokół jego środka, zamiast jego podstawy.

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

uratował mój brat dzień. Dziękujemy +1 –

+0

Dzięki bracie. Nicea odpowiedź –

+0

Dla tych, którzy po prostu chcą, aby przesunąć pozycję markera, wszystko czego potrzebujesz to 'yourMarker.groundAnchor = CGPoint (0.5, 0.5);' Dzięki @adboco! – Spencer

5

Odkryłem, jak to zrobić po lekturze Dokumentów Google Maps bardzo uważnie. Uważam, że tak właśnie miało się to stać.

UIImage *markerIcon = [UIImage imageNamed:@"markericon.png"]; 
markerIcon = [markerIcon imageWithAlignmentRectInsets:UIEdgeInsetsMake(0, 0, (markerIcon.size.height/2), 0)]; 
self.marker.icon = markerIcon; 
+0

próbowałem tej metody i wygląda na to, że działa, ale powoduje pewne niezamierzone skutki uboczne ... robi to * nie przesunąć obszar tappable * więc obszar poza rect oryginalnego znacznika nie będzie tappable . – Spencer