Ios 如何在swift 3中使用谷歌地图跟踪用户的实时位置?
我是Swift新手,谷歌地图任何人都可以建议如何使用谷歌地图Swift 3跟踪用户的实时位置。对于此任务,您需要将谷歌地图SDK集成到您的项目中。是关于iOS上谷歌地图的入门 但是,如果你不依赖谷歌地图,也就是说你没有特定的需求,那么一定要考虑苹果地图(MapKit)。不要不必要地将依赖项集成到项目中 您还需要CoreLocation。这是苹果的所有位置相关的图书馆。因此得名。:]Ios 如何在swift 3中使用谷歌地图跟踪用户的实时位置?,ios,google-maps,location,Ios,Google Maps,Location,我是Swift新手,谷歌地图任何人都可以建议如何使用谷歌地图Swift 3跟踪用户的实时位置。对于此任务,您需要将谷歌地图SDK集成到您的项目中。是关于iOS上谷歌地图的入门 但是,如果你不依赖谷歌地图,也就是说你没有特定的需求,那么一定要考虑苹果地图(MapKit)。不要不必要地将依赖项集成到项目中 您还需要CoreLocation。这是苹果的所有位置相关的图书馆。因此得名。:] 不久前,一个用于检索项目范围内用户位置的单例对象。使用它,单个实体检索位置信息,您可以在整个项目中访问它,而无需重
不久前,一个用于检索项目范围内用户位置的单例对象。使用它,单个实体检索位置信息,您可以在整个项目中访问它,而无需重复。使用多个CoreLocationManager或将其放入AppDelegate中是一种不好的做法。起初,您可能无法获得它,但后来这是一条路。您需要考虑以下几个步骤 总的来说,您需要:
- 使用核心位置获取位置更新
CLLocation
- 初始化谷歌地图视图
GMSMapView
- 每次更新时,都会将地图视图设置为新位置的动画
- 如果要跟踪路径,请使用
和GMSPath
GMSPolyline
- 您需要导入该库
- 创建CLLocationManager的实例,它是管理更新的类
- 实施
方法来接收每个更新CLLocationManagerDelegate
- 您可以通过以下代码来实现这一点
- 这就是跟踪发生的地方,每次您在
的委托方法中获得更新时,您将获得一个CLLocationManagerDelegate
数组,您可以使用它将地图动画化到新位置CLLocation
GMSPath
和GMSPolyline
:
- 为此,您需要存储
和GMSPath
的实例,并在viewDidLoad或初始化代码中初始化它们GMSPolyline
- 每次更新时,您都应该执行以下操作:
// Say your GMSPath instance is called trackingPath: trackingPath.add(locations.last!.coordinate) // Say your GMSPolyline instance is called trackingPolyline: // You clear the mapView to remove obsolete polyline mapView.clear() // You update your polyline with the path trackingPolyline.path = path // You add the polyline to the UI by pointing its map atribute to your mapView trackingPolyline.map = mapView
如果多个视图访问位置使用单例优化性能,Can建议使用单例访问位置是您目前应该做的。整个应用程序中只有一个实例应该管理位置更新,并将其传递给必要的视图。嗨,kishan,欢迎使用Stack Overflow!丹尼尔·索托首先感谢你回答我的问题。实际上,我的问题是如何跟踪用户的实时位置,例如,如果我们在优步预订任何出租车,在那里我们可以看到司机的实时位置。在这种情况下,我必须选择applemapkit还是google map kitWell,正如我之前所说,使用谷歌地图或MapKit的决定更多地取决于您将使用该应用程序的国家以及苹果对该国的支持;不在你会给它的用途上。跟踪的过程是相同的,不同的是,在您给出的同一个示例中,优步是实施位置更新的一个,当它收到位置更新时,它会将其发送到后端服务或乘客。当乘客从后端或直接接收到它时,它应该相应地更新路径、多段线和地图,使用我前面介绍的相同过程。
// Say your GMSPath instance is called trackingPath:
trackingPath.add(locations.last!.coordinate)
// Say your GMSPolyline instance is called trackingPolyline:
// You clear the mapView to remove obsolete polyline
mapView.clear()
// You update your polyline with the path
trackingPolyline.path = path
// You add the polyline to the UI by pointing its map atribute to your mapView
trackingPolyline.map = mapView