【问题标题】:How to slow the camera animation location in Google Maps for iOS?如何减慢 iOS 版 Google 地图中的相机动画位置?
【发布时间】:2015-01-12 21:34:14
【问题描述】:

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

按照 Google 的开发人员文档,我实现了一种类似的方法,类似于用户点击按钮时显示的方法:

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

这类似于我的代码:

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

[googleMapView animateToCameraPosition:camera];

它可以工作,并且相机会根据我指定的坐标平移到我想要的任何位置。然而,平移真的很快,实际上是瞬时的。

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

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

【问题讨论】:

标签: ios objective-c iphone google-maps


【解决方案1】:

基本上,您需要在代码周围加上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] 将定义动画的持续时间。

【讨论】:

  • @ztan 这是否提供与 android 相同的缩放效果?我无法获得相同的效果
  • @Anish웃 尝试使用 kCAMediaTimingFunctionEaseInEaseOut 动画。 CATransaction.setAnimationTimingFunction(CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut))
  • 我可以为位置设置动画,但在制作动画时出现故障...
【解决方案2】:

为斯威夫特 3

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

【讨论】:

    猜你喜欢
    • 2017-10-12
    • 1970-01-01
    • 1970-01-01
    • 2020-12-25
    • 1970-01-01
    • 2018-06-02
    • 2020-12-24
    • 2017-12-28
    • 2013-03-17
    相关资源
    最近更新 更多