17

MKMapView を使用して、デフォルトの呼吸する青いピンを使用してユーザーの現在の場所を表示し、同時にユーザーの動きを記録したいと考えています。ユーザーの位置を表示できるようにしたときに MKMapView が使用する GPS マネージャー (これが CLLocationManager かどうかは不明) を使用する方法はありますか?

独自の CLLocationManager を作成できることを知っています。しかし、これは私のアプリケーションにオーバーヘッドを追加しているように感じます。マップと追跡を同期したままにしておきたいのです。

私はすでに次のアイデアを調査しましたが、成功しませんでした。

  • を使用し[MKMapView showUserLocation:YES]て、フィールドに KVO を追加しuserLocationます。これは機能しません。これは、userLocationフィールドが読み取り専用であることが原因であるかどうか疑問に思っています。
  • を使用し[MKMapView showUserLocation:YES]、 を作成しMKMapViewDelegateて、ユーザー位置の注釈ビューが要求されたときにトラッキングを追加します。注釈ビューは明らかに一度しか要求されないため、これは機能しませんか???
  • a を使用してCLLocationManager、青いピンを手動で追加してみてください。残念ながら、利用可能なピン タイプに青いピンが見つからなかったため、ユーザー アノテーションを手動で作成しようとしましたが、成功しませんでした。

これを達成し、青いピンの恩恵を受ける方法を知っている人はいCLLocationManagerますか?それとも、自分のピンを使用して作成する唯一の解決策ですか?

4

1 に答える 1

18

CLLocationManagerすべてのインスタンスで同じデータを使用します。内部でデータMKMapViewを使用します。CLLocationManager'sつまり、やりたいことを行うための解決策はMKMapView、 に関して独自のことを行うことshowUserLocation:です。同時に、CLLocationManagerとそのデリゲートのインスタンスを作成します。

MKMapView's代理メッセージは、青いピンの GPS 座標位置を示します。すべてが互いに同期します。

于 2010-02-23T16:08:47.507 に答える