0

ユーザーが近所を歩き回っている間に独自の地図注釈を作成できるアプリを構築しています。私は今これをテストしています。

すべてがスムーズに機能します。通りに出てマップ注釈を作成すると、それらがデバイス マップに即座に表示されることがわかります。問題は、複数のピンを作成した後、それらがすべて 1 つのピンとして表示されることがあることです。つまり、緯度と経度は同じですが、タイトルとサブタイトルが異なります。これは、プログラムが実際には別々のオブジェクトを作成しているが、それらに同じ座標を割り当てていることを意味します。

新しいオブジェクトが作成されたときに、プログラムが古いオブジェクトを書き換えていないことを確認しました。

CLlOcation マネージャーが同じ座標を提供しているようです。これをどのように進めるかわかりません。

CLLocation Manager が間違った座標を与えている可能性はありますか?

ありがとう

これは、cllocationmanager インスタンスに実装したコードです

 -(void)locationManager:(CLLocationManager*)_manager
   didUpdateToLocation:(CLLocation *)newLocation
      fromLocation:(CLLocation *)oldLocation
 {
   NSLog(@"%s %d", __PRETTY_FUNCTION__, __LINE__);
   self.userLocation = newLocation;
   NSLog(@"USer location latitude = %.4f", self.userLocation.coordinate.latitude );
   NSLog(@"USer location longitude = %.4f", self.userLocation.coordinate.longitude);
   if (self.userLocation)
   {
        [_locMgr stopUpdatingLocation];
    }

   }

編集

具体的に言うと、私が理解しようとしているのは、アプリ内のユーザーの位置の更新された読み取り値を取得する方法です。これは、ユーザーの位置を絶えずアニメーション化して、ユーザーが移動するたびに移動する青い点と同じ値です動きます。CLLocationマネージャーからその読み取り値を取得できないようです。

ありがとう

4

1 に答える 1

3

Location Manager をオンにすると、古い測定値が 1 つ取得されることがよくあります。使用を決定する前に、読み取り値のタイムスタンプと horizo​​ntalAccuracy を確認する必要があります。

于 2013-02-09T16:20:08.130 に答える