2015-01-12 5 views
7

Wenn Sie in der Google Maps App für iOS auf die Schaltfläche "Mein Standort" tippen, bewegt sich die Kamera von Ihrem aktuellen Standort aus langsam zum aktuellen Standort.Wie verlangsamen Sie den Standort der Kameraanimation in Google Maps für iOS?

der Entwicklerdokumentation von Google Nach ich ein ähnliches Verfahren wie das gezeigt ein implementiert haben, wenn ein Benutzer auf eine Schaltfläche tippt:

- (void) animateToCameraPosition: (GMSCameraPosition *) cameraPosition; 

Dies ist vergleichbar mit meinem Code:

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude: lat 
                 longitude: long zoom: 17]; 

[googleMapView animateToCameraPosition:camera]; 

Es funktioniert, und die Kamera schwenkt an die von mir gewünschte Position, basierend auf den angegebenen Koordinaten. Das Schwenken ist jedoch sehr schnell und unmittelbar.

Ich möchte, dass die Kamera langsam von meinem Standort zum gewünschten Standort schwenkt, wie in Google Maps gezeigt.

Wie kann ich das erreichen? Danke

Antwort

13

Grundsätzlich müssen Sie CATransaction um Ihren Code setzen.

[CATransaction begin]; 
[CATransaction setValue:[NSNumber numberWithFloat: YOUR_SPEED] forKey:kCATransactionAnimationDuration]; 
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude: lat 
                longitude: long zoom: 17]; 
[googleMapView animateToCameraPosition: camera]; 
[CATransaction commit]; 

Die [NSNumberWithFloat: YOUR_SPEED] definiert die Dauer Ihrer Animation.

+0

perfekt, danke! – Pangu

+0

@ztan hat das gleiche Zoom-Effekt wie von Android? Ich kann nicht den gleichen Effekt –

+0

@Anisn 웃 versuchen mit der kCAMediaTimingFunctionEaseInEaseOut Animation. 'CATransaction.setAnimationTimingFunction (CAMediaTimingFunction (Name: kCAMediaTimingFunctionEaseInEaseOut))' –

7

für eine schnelle 3

CATransaction.begin() 
CATransaction.setValue(Int(YOUR_SPEED), forKey: kCATransactionAnimationDuration) 
// YOUR CODE IN HERE 
CATransaction.commit() 
Verwandte Themen