我的应用程序中有一个嵌入式数据库,其中包含一些感兴趣点的纬度和经度,我需要知道距离这些点的距离(使用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);
有人有解决方案吗?
问候!
答案 0 :(得分:9)
在目标C中进行。
这家伙有同样的问题:http://www.thismuchiknow.co.uk/?p=71
答案 1 :(得分:0)
是的,您可以根据位置周围的矩形进行简单查询,然后使用半正公式计算精确距离。
这样做的好处是可以在SQLite表上使用索引。
有关半胱氨酸公式的更多信息:http://en.wikipedia.org/wiki/Haversine_formula