基本的には、誰かが移動する経路とデータを記録するはずのアプリを作っています。私は正確さと不正確なレポートを決定することにいくつかの問題を抱えています。ここに私のiPhoneが記録したパスのイメージがあります。CoreLocationを使用した散発的な座標の防止
データを記録するための私の代理人は、次のようになります:
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
if (newLocation.horizontalAccuracy < 0) return;
NSTimeInterval locationAge = -[newLocation.timestamp timeIntervalSinceNow];
// The "> 50.0f" is to hopefully throw out inaccurate points
if (locationAge > 5.0 || [newLocation distanceFromLocation:oldLocation] > 50.0f) return;
[[self locationPoints] addObject:newLocation];
[self updateView];
}
一部を赤い線は、ピンクのは、私が実際に(巨大なスクリーンショットのための謝罪を)歩いてどのように記録されているパスです私が見たアドバイスは、データが投影されたパスに適しているかどうかをフィルターで確認することです。これは最善の方法ですか?
雅I」:あなたと
locationManager
はセットアップに思い出してくれるあなたをしました最高の精度を使用しています。私は、バッテリー寿命が延びる限り、正確さのために適切な解決策を試す必要があります。私は最初の行(if(newLocation.horizontalAccuracy <0)return;)のhorizontalAccuracyをチェックしていますが、あまりにも大きな精度に対してチェックするのが良いでしょう。また、おそらく私はそれについて考えている場所の年齢になるはずです。いいですよね! – rnystrom@mystrom:うん、場所の時代は行く必要があります:) accuraacyについては、私はyoul'd最高10.0から20.0周りの最大設定と思う。その<0.0状態は無効なGPSのためです - GPSチップセットに場所の修正がない場合 –