SQLITE得到最近的位置(有纬度和经度)
我将纬度和经度的数据存储在SQLite数据库中,我希望获得与我输入的参数(例如)最近的位置。我现在的位置-lat/lng,等等。
我知道在MySQL中这是可能的,而且我已经做了相当多的研究,SQLite需要为Haversine公式定制一个外部函数(计算球面上的距离),但是我还没有找到用Java编写和工作的任何东西。
另外,如果我想添加自定义函数,我需要org.sqlite
.jar(用于org.sqlite.Function
),这给应用程序增加了不必要的大小。
另一方面,我需要SQL中的ORDERBY函数,因为仅显示距离并不是什么大问题-我已经在自定义SimpleCursorAdapter中这样做了,但是我无法对数据进行排序,因为我的数据库中没有Range列。这意味着每次位置变化时都会更新数据库,这是对电池和性能的浪费。因此,如果有人想用不在数据库中的列对游标进行排序,我也会非常感激的!
我知道有很多Android应用程序都在使用这个功能,但是谁能解释一下这个神奇之处呢?
顺便说一句,我发现了另一种选择:查询基于SQLite中的Radius获取记录?
它建议为lat和lng的cos和sin值设置4个新列,但是还有其他的,没有多余的方法吗?