我正在使用适用于 IOS 的 Google Maps API,并且想知道是否有一种方法可以在应用加载后立即检索设备的当前位置以显示在地图上。
目前,当应用程序加载当前位置坐标对象为 nil 时,我无法在应用程序崩溃的情况下将地图相机设置在其上。有没有办法绕过这个问题,而不必将相机设置在其他地方,然后用户按下我的位置按钮来移动相机。
我正在使用适用于 IOS 的 Google Maps API,并且想知道是否有一种方法可以在应用加载后立即检索设备的当前位置以显示在地图上。
目前,当应用程序加载当前位置坐标对象为 nil 时,我无法在应用程序崩溃的情况下将地图相机设置在其上。有没有办法绕过这个问题,而不必将相机设置在其他地方,然后用户按下我的位置按钮来移动相机。
要从地图上获取位置,只需使用gmsMap.myLocationEnabled = true
谷歌地图即可为您完成剩下的工作。要将相机设置为您的位置,请为键 myLocation 添加键值观察者以进行映射
map.addObserver(self, forKeyPath: "myLocation", options: .New, context: nil)
deinit {
//dont forget to remove observer
mapView.removeObserver(self, forKeyPath: "myLocation")
}
override func observeValueForKeyPath(keyPath: String, ofObject object: AnyObject, change: [NSObject : AnyObject], context: UnsafeMutablePointer<Void>) {
if change[NSKeyValueChangeOldKey] == nil {
let location = change[NSKeyValueChangeNewKey] as CLLocation
gmsMap.camera = GMSCameraPosition.cameraWithTarget(location.coordinate, zoom: 16)
}
}
我认为这个答案会对您有所帮助: https ://stackoverflow.com/a/20994202/4195406
基本上你必须在加载地图视图后启用 myLocation :
dispatch_async(dispatch_get_main_queue(), ^{
mapView_.myLocationEnabled = YES;
});