首页 > 解决方案 > 如何在ios中将Google地图标记从一个位置平滑地动画到另一个位置

问题描述

我在谷歌地图上有一个汽车图标,必须定期移动。位置坐标将从服务器获取,我已经设法通过执行下面的代码来更改标记的位置,但是 didint 得到了平稳的移动

let camera = GMSCameraPosition.camera(withLatitude: (((self.driverArrival.value(forKey: "latitude")) as AnyObject).doubleValue)!,
                                          longitude: (((self.driverArrival.value(forKey: "longitude")) as AnyObject).doubleValue)!, zoom: 15)

    let position = CLLocationCoordinate2DMake((((self.driverArrival.value(forKey: "latitude")) as AnyObject).doubleValue)!, (((self.driverArrival.value(forKey: "longitude")) as AnyObject).doubleValue)!)

    driverMarker.position = position
    driverMarker.map = self.mapView

这里 driverdetails 包含所有需要的数据。只是想知道我可以使用任何动画功能来实现这一点吗?

标签: iosswiftgoogle-mapsnavigationmarker

解决方案


您可以使用 animate(to: GMSCameraPosition) 使用动画更新地图位置,示例如下所示:-

func updateMapLocation(lattitude:CLLocationDegrees,longitude:CLLocationDegrees){
    let camera = GMSCameraPosition.camera(withLatitude: lattitude, longitude: longitude, zoom: 16)
    mapView?.camera = camera
    mapView?.animate(to: camera)
}

并像这样调用方法

updateMapLocation(lattitude:-33.8683,longitude:151.2086)

了解更多信息

编辑

对于标记位置更新,您可以使用单个标记并使用此代码更新其位置

CATransaction.begin()
CATransaction.setAnimationDuration(2.0)
marker.position = coordindates // CLLocationCoordinate2D coordinate
CATransaction.commit()

推荐阅读