ios - 如何在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 包含所有需要的数据。只是想知道我可以使用任何动画功能来实现这一点吗?
解决方案
您可以使用 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()
推荐阅读
- java - 如何使用 Cell 的 toString() 方法为 2D 单元格数组创建 toString() 方法?
- discord.py - discord.py 在 on_ready 中发送消息不起作用
- javascript - 如何解决 A-Frame AR 中的网格视觉问题?
- python - 将单个熊猫数据框的多行合并为一个
- c# - 解析 json 时出现 System.Reflection.AmbiguousMatchException
- python - FastApi/Pydantic 从父表访问多对一关系
- python - Django:触发下载后重定向到另一个页面
- apache - 我可以同时使用 Apache fallbackresource 和 rewrite 吗?
- javascript - 将被破坏对象的值大写
- web-crawler - Storm-Crawler 和 Apache Strom 2.xx