0

実行時に作成する mkmapview があります。最初に、実際の問題は iPad にあるが、シミュレーターにはないことを伝えなければなりません。ビューでロードされたとき、私は2つの関数を呼び出しています。fillValues と setDraggable Point。

CLLocationManager *locManager = [[CLLocationManager alloc]init];
[locManager startUpdatingLocation];

CLLocationCoordinate2D currCoordinates = locManager.location.coordinate;
NSLog(@"the latitude is %f",currCoordinates.latitude);
NSLog(@"the longitude is %f",currCoordinates.longitude);
[self fillLatitudeAndLongitudeTextFields:currCoordinates.latitude longitudeValue:currCoordinates.longitude];

[self setDraggablePinOnMap:currCoordinates];

ON SIMULATOR: 座標と fillTextfields をログに記録し、マップ上にドラッグ可能なポイントを設定します。setDruggablePinOnMap メソッドはマップを作成し、赤い注釈を設定します。そのため、アプリがシミュレーターに読み込まれると、自分の場所の周りに青い点が表示され、同じ場所に赤いピンが表示されます (意図したとおりに機能します)。ピンを移動してその位置の座標を取得し、テキスト フィールドを更新します。

デバイス - iPad で初めてアプリをロードすると、現在の場所が青い点でロードされます。しかし、赤い注釈は現在の場所ではなく、赤道上の地球の中心の 0,0,0 と 0,0,0 に表示されます。意図したとおりに動作していません。赤と青の両方が同じ点で交差する必要があります。興味深い点は、この画面の 2 回目の読み込みです (基本的には画面 A に戻ってこの画面に戻ります。地図が存在する画面を画面 B としましょう)、青と赤の点が交差する地図を読み込みます。最初のロードで場所を把握できなかったが、後でできるようになるようなものです。最初の読み込み時に表示するにはどうすればよいですか? 私は理にかなっていますか?さらに情報が必要な場合は、私に尋ねてください。

4

1 に答える 1

1

ロケーションマネージャーがあなたの場所を適切に修正するのを待っていないため、初めてそれを行うことはできません. クラスをロケーションマネージャーのデリゲートdidUpdateLocationsにして、コールバックを待つ必要があります。場所を取得したら、それを使用して赤いピンを設定し、場所マネージャーが更新を送信するのを停止するか、ピンが既に配置されている場合は無視します.

于 2012-11-29T21:53:15.227 に答える