0

IOS 用の Google Maps API を使用していますが、デバイスの現在の場所を取得して、アプリが読み込まれるとすぐに地図に表示する方法があるかどうか疑問に思っていました。

現時点では、アプリが現在の位置座標オブジェクトを読み込むと nil になるため、アプリをクラッシュさせずに地図カ​​メラを設定することはできません。カメラを別の場所に設定せずに、ユーザーが現在地ボタンを押してカメラを移動することなく、これを回避する方法はありますか。

4

2 に答える 2

1

マップから場所を取得するには、使用するだけ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)
    }
}
于 2015-02-04T20:38:42.223 に答える