如何减慢 Google 地图中 iOS 的相机动画位置?

How to slow the camera animation location in Google Maps for iOS?

在 iOS 的 Google 地图应用中,当您点击“我的位置”按钮时,相机会从您当前所在的任何位置缓慢平移到您的当前位置。

根据 Google 的开发者文档,我实现了一种类似的方法,就像用户点击按钮时显示的方法:

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

这与我的代码相似:

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

[googleMapView animateToCameraPosition:camera];

它起作用了,相机会根据我指定的坐标平移到我想要的任何位置。但是,平移真的很快,实际上是瞬时的。

我希望相机从我所在的任何位置缓慢平移到指定位置,如 Google 地图中所示。

我怎样才能做到这一点?谢谢

基本上,您需要在代码周围放置 CATransaction

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

[NSNumberWithFloat: YOUR_SPEED] 将定义动画的持续时间。

对于 swift 3

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