0

取得する場所が適切な精度であることを確認するために、次の条件を使用しています。私の場合はkCLLocationAccuracyBestです。しかし、問題は私がまだ不正確な場所を取得することです。

// Filter out nil locations
if(!newLocation)
    return;

// Make sure that the location returned has the desired accuracy
if(newLocation.horizontalAccuracy < manager.desiredAccuracy)
    return;

// Filter out points that are out of order    
if([newLocation.timestamp timeIntervalSinceDate:oldLocation.timestamp] < 0)
    return;

// Filter out points created before the manager was initialized
NSTimeInterval secondsSinceManagerStarted = [newLocation.timestamp timeIntervalSinceDate:locationManagerStartDate];
if(secondsSinceManagerStarted < 0)
    return;

// Also, make sure that the cached location was not returned by the CLLocationManager (it's current) - Check for 5 seconds difference
if([newLocation.timestamp timeIntervalSinceReferenceDate] < [[NSDate date] timeIntervalSinceReferenceDate] - 5)
    return;

GPSをアクティブにすると、実際に正確な結果が得られる前に、不正確な結果が得られます。正確な/正確な位置情報を取得するためにどのような方法を使用していますか?

4

2 に答える 2

0

GPSは、少なくともユーザーの忍耐力に比べて遅いため、ロケーションマネージャーは、新しい有効なGPS読み取りを取得するまで、最高の状態を返します。正確な読み取りを取得するのにかかる時間だけユーザーを待たせるか、ドットではなく円を使用して、Googleマップのように何らかの増分フィードバックを得ることができます。

于 2010-04-16T05:49:28.073 に答える
0

私が不正確な結果を得ていた主な理由は、この状態のためでした:

if(newLocation.horizontalAccuracy < manager.desiredAccuracy)

私はkCLLocationAccuracyBestdesiredAccuracyを使用していましたが、これは負の数です。比較のために使用しないでください。

解決: if(newLocation.horizontalAccuracy < 10.0)

于 2010-05-04T05:24:43.573 に答える