IPhone - 经纬度和经度的SQLite距离

Cla*_*dio 6 iphone geolocation

我的应用程序中有一个嵌入式数据库,它具有一些感兴趣点的纬度和经度,我需要知道我与这些点的距离(使用GPS获取我的位置).我的问题是:我刚刚发现SQLite无法使用我的查询计算距离,因为它不计算三角函数(SIN,COS ...).我试图避免使用此查询以编程方式计算这些距离:

NSLog(@"SELECT ((ACOS(SIN(%@ * PI() / 180) * SIN(lat * PI() / 180) + COS(%@ * PI() / 180) * COS(lat * PI() / 180) * COS((%@ – lon) * PI() / 180)) * 180 / PI()) * 60 * 1.1515) AS `distance` FROM `members` HAVING `distance`<=’1000? ORDER BY `distance`", Latitude,Latitude, Longitude);
Run Code Online (Sandbox Code Playgroud)

有人有解决方案吗?

问候!

Jer*_*upé 9

在Objective C中完成

这家伙有同样的问题:http://www.thismuchiknow.co.uk/?p = 71

  • 与答案相关联的确非常好.定义从sqlite调用的ac函数来计算距离.它很快而且很有效.我唯一要做的就是您可以使用BETWEEN语句优化搜索.我正在使用它:SELECT*FROM Locations WHERE lat BETWEEN%f AND%f AND lon BETWEEN%f AND%f ORDER BY distance(lat,lon,%f,%f)LIMIT 25 (3认同)