0

CLLocation の更新を取得するたびに緯度と経度を記録する非常に基本的な iPhone アプリを作成しました。これらの新しい位置は GPX ファイルに保存され、Google マップにルート オーバーレイとして読み込むことができます。ズームアウトすると、ルートはかなり正確に見えますが、ズームインすると、実際に運転していた道路の脇にルートが表示されることがよくあります。この典型的な例の 1 つは、ジャンクションに近づいたときに位置の更新が発生し、角を曲がった後に再び発生することです。2 つのポイントが接続されると、オフロードを運転したように見えます。この精度を向上させる方法があるかどうか、またはルートを実際の道路自体にスナップする方法があるかどうかは誰にもわかりませんか?

更新のための私のコードは次のとおりです。

- (void)locationUpdate:(CLLocation *)location 
{   
////////////////////////////////////////////////////////
//Write to File
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *testFile = [documentsDirectory stringByAppendingPathComponent:@"routeplots.gpx"];

    BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:testFile];

    if(fileExists) {
        // get a handle to the file

        NSFileHandle *fileHandle = [NSFileHandle fileHandleForWritingAtPath:testFile];

        // move to the end of the file
        [fileHandle seekToEndOfFile];

        NSString *data =[NSString stringWithFormat:@"\n<trkpt lat='%f' lon='%f'><name>%f</name></trkpt>", location.coordinate.latitude , location.coordinate.longitude , [location speed]];

        // move to the end of the file
        [fileHandle seekToEndOfFile];

        // convert the string to an NSData object
        NSData *textData = [data dataUsingEncoding:NSUTF8StringEncoding];

        // write the data to the end of the file
        [fileHandle writeData:textData];

        // clean up
        [fileHandle closeFile];
}
}

私の問題を見てくれてありがとう、ジェームズ

4

2 に答える 2

1

desiredAccuracy を AccuracyBest に設定します。locationManager.desiredAccuracy = KCLLocationAccuracyBest.

于 2012-05-03T12:54:02.130 に答える
1

あなたがしていることについては、APPLE 自身が提供するこのサンプルアプリケーションを見てください。サンプル インストールをデバイスにダウンロードするだけで、デバイスがどのように動作しているかがわかります。

It Demonstrates how to draw a path using the Map Kit overlay, MKOverlayView, that follows and tracks the user's current location. The included CrumbPath and CrumbPathView overlay and overlay view classes can be used for any path of points that are expected to change over time. It also demonstrates what is needed to track the user's location as a background process.

それが役に立てば幸い。

于 2012-05-03T13:07:10.690 に答える