gpt4 book ai didi

iphone - 使用 SQLITE 的长纬度坐标之间的距离

转载 作者:行者123 更新时间:2023-12-03 19:11:03 29 4
gpt4 key购买 nike

我有一个带有长和纬度商店的 sqlite 数据库,我想找出最近的 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];
}
}

我知道我所在的位置到每家商店的距离。我的问题是。

  1. 将距离放回到sqlite行中是否更好,当我单步遍历数据库时我有该行。我怎么做?我是否使用 UPDATE 语句?有人有一段代码可以帮助我吗?

  2. 我可以将 sqlite 读入数组,然后对数组进行排序。与上述方法相比,您是否推荐这种方法?这样效率更高吗?

最后,如果有人有更好的方法来到达最近的 5 家商店,很高兴听到它。

最佳答案

在 SQL 中查找附近位置的最快方法是在 SQL 查询中使用半正矢公式。在 Google 上搜索 sqlite 和 Haversine,您会找到一个实现。

这是我以前用过的一个:

http://www.thismuchiknow.co.uk/?p=71

关于iphone - 使用 SQLITE 的长纬度坐标之间的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2926167/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com