1

iPhoneで座標を取得するためにCLLocationメカニズムを使用しています。「Locate me」の例から例を取り、それを少し拡張しました。しかし、私は精度の問題を出しています。

  • 希望の精度を 10 メートル以下に設定すると、1414 メートルの精度で応答が得られます。
  • 必要な精度を 100 以上に設定した場合、ほとんどの場合、得られる最高の精度は 65 メートルです。多い時も少ない時もある。
  • WiFi と 3G をオフにすると、精度は最大 47 メートルになります。

問題は、三角測量アンテナの代わりに GPS を使用して iPhone で位置情報を取得する方法があるかどうかです。

アンテナを使用するときに精度を向上させる方法があるかどうかを知ることは良いことですが、これまでに得られた最良の結果は 65 メートルです.

4

2 に答える 2

5

どのハードウェアが場所を取得しているかを制御しようとしているわけではありません。より高い精度が必要な場合は、 から提供された精度を確認し、必要CLLocationなものでない場合は破棄できます。

別の方法として、私が書いたこのコードを使用して、一連の読み取り値を平均化することもできます。オブジェクトの配列を渡すCLLocationと、1 つの平均位置が返されます。私は自分のアプリの 1 つでそれを使用しており、非常に高い精度が得られます (5 つ以上の場所を使用する場合、通常は 1 メートル以内)。

- (CLLocation *) averageLocations: (NSArray *) loci
{
    double tempLat=0,tempLong=0,tempAlt=0,tempAccH=0,tempAccV=0,tempCourse=0,tempSpeed=0,tempTime=0;
    for (CLLocation *loc in loci)
    {
        tempLat += loc.coordinate.latitude;
        tempLong += loc.coordinate.longitude;
        tempAlt += loc.altitude;
        tempAccH += loc.horizontalAccuracy;
        tempAccV += loc.verticalAccuracy;
        tempCourse += loc.course;
        tempSpeed += loc.speed;
        tempTime += loc.timestamp.timeIntervalSinceReferenceDate;
    }

    double ratio = (double) loci.count;
    CLLocationCoordinate2D tempCoord = CLLocationCoordinate2DMake(tempLat/ratio, tempLong/ratio);
    NSDate *tempDate = [[NSDate alloc] initWithTimeIntervalSinceReferenceDate:tempTime/ratio];

    CLLocation *temp = [[CLLocation alloc] initWithCoordinate:tempCoord 
                                  altitude:tempAlt/ratio 
                        horizontalAccuracy:tempAccH/ratio 
                          verticalAccuracy:tempAccV/ratio 
                                    course:tempCourse/ratio
                                     speed:tempSpeed/ratio
                                 timestamp:tempDate];

    return temp;
}
于 2012-08-15T15:39:11.100 に答える
0

コアロケーションは、データソースを使用してロケーションデータを提供しません。位置を保証する最善の方法は、受け取った CLLocation オブジェクトの日付を探し、位置の水平方向と垂直方向の精度を確認することです。私は中心的な位置情報を幅広く扱ってきましたが、正確な位置データが必要な場合、時間は不正確な情報を示す非常に優れた指標であると言えます。正確なデータが必要な場合は、5 秒より古いデータを無視します。

于 2012-08-15T15:42:37.723 に答える