首页 > 解决方案 > didUpdate userLocation:用于谷歌地图 ios swyft 的 MKUserLocation

问题描述

我最近将我的地图从 mapkit 切换到谷歌地图。但是,我想将用户位置坐标更新为 firebase。谷歌相当于 MKUserLocation 是什么

func mapView(_ mapView: GMSMapView, didUpdate userLocation: MKUserLocation) {
        UpdateService.instance.updateALocation(withCoordinate: userLocation.coordinate)
        UpdateService.instance.updateBLocation(withCoordinate: userLocation.coordinate)

我希望能够实时更新坐标到带有坐标的firebase

标签: iosswiftgoogle-maps

解决方案


简单的答案是谷歌地图没有等效的方法。从 iOS 的角度来看,谷歌地图是第三方。因此,就像所有其他应用程序一样,它们也必须使用 Apple 的核心位置库来获取用户位置。甚至 MKMapView 也在内部使用 CLLocationManager。您需要使用locationManager:didUpdateLocations:委托方法。

您可以参考此答案以了解在谷歌地图中使用核心位置。https://stackoverflow.com/a/38627279/4637057

所以在你的情况下,如果你想将位置坐标发送到 Firebase,那么在里面locationManager:didUpdateLocations:访问locations.last?.coordinate.latitude!locations.last?.coordinate.longitude!


推荐阅读