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];
}
}
私の問題を見てくれてありがとう、ジェームズ