IOS 用の Google Maps API を使用していますが、デバイスの現在の場所を取得して、アプリが読み込まれるとすぐに地図に表示する方法があるかどうか疑問に思っていました。
現時点では、アプリが現在の位置座標オブジェクトを読み込むと nil になるため、アプリをクラッシュさせずに地図カメラを設定することはできません。カメラを別の場所に設定せずに、ユーザーが現在地ボタンを押してカメラを移動することなく、これを回避する方法はありますか。
IOS 用の Google Maps API を使用していますが、デバイスの現在の場所を取得して、アプリが読み込まれるとすぐに地図に表示する方法があるかどうか疑問に思っていました。
現時点では、アプリが現在の位置座標オブジェクトを読み込むと nil になるため、アプリをクラッシュさせずに地図カメラを設定することはできません。カメラを別の場所に設定せずに、ユーザーが現在地ボタンを押してカメラを移動することなく、これを回避する方法はありますか。
マップから場所を取得するには、使用するだけgmsMap.myLocationEnabled = true
で、Google マップが残りの作業を行います。カメラを自分の場所に設定するには、キー 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)
}
}