私は店の経度と緯度を持つ sqlite db を持っていて、最も近い 5 つの店を見つけたいと思っています。
したがって、次のコードは正常に機能します。
if(sqlite3_prepare_v2(db, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK) {
while (sqlite3_step(compiledStatement) == SQLITE_ROW) {
NSString *branchStr = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 0)];
NSNumber *fLat = [NSNumber numberWithFloat:(float)sqlite3_column_double(compiledStatement, 1)];
NSNumber *fLong = [NSNumber numberWithFloat:(float)sqlite3_column_double(compiledStatement, 2)];
NSLog(@"Address %@, Lat = %@, Long = %@", branchStr, fLat, fLong);
CLLocation *location1 = [[CLLocation alloc] initWithLatitude:currentLocation.coordinate.latitude longitude:currentLocation.coordinate.longitude];
CLLocation *location2 = [[CLLocation alloc] initWithLatitude:[fLat floatValue] longitude:[fLong floatValue]];
NSLog(@"Distance i meters: %f", [location1 getDistanceFrom:location2]);
[location1 release];
[location2 release];
}
}
今いる場所から各店までの距離を知っています。私の質問はです。
距離を sqlite の行に戻す方がよいでしょうか。データベースをステップスルーすると、行が表示されます。それ、どうやったら出来るの?UPDATE ステートメントを使用しますか? 誰かが私を助けるためのコードを持っていますか?
sqlite を配列に読み取ってから、配列を並べ替えることができます。上記のアプローチよりもこれをお勧めしますか?これはより効率的ですか?
最後に、最寄りの 5 つのショップを見つけるためのより良い方法があれば、ぜひ教えてください。