我在我的android应用程序中有一个包含地理位置指针(lat和lon是十进制度值)的数据库表,大约有1000个点。我需要选择20个最近点到某个给定的地理点。获取下一个N最接近的地理点
我在Stackoverflow找到答案如何计算两个地理点之间的距离,并非常高兴,直到我试图写我的查询。我发现,在android的内置sqlite中不能使用trignometrical函数。
但后来我有一个想法。我并不需要计算距离。近点是另一点,它们的地理坐标应该有较小的差异。
我怎么能用这个事实? (lat_0 - lat_n)^ 2 +(lon0-lon_n)^ 2是否足以保存点,其中lat_0和lon_0是给定点的地理坐标?
谢谢
穆尔
UPD
因此,要为我的问题的答案的最好方法是测试方法,我上面描述。
它工作得很好,但并不完全与精确距离相比。
所以如果你只需要计算一个距离,这个解决方案是可以的,但在我的情况下,我还需要按距离排序站点,并且不能使用这个解决方案。
我要感谢John在CashCommons和Philip。谢谢你们
我编辑了我的问题,lat和lon坐标存储为十进制度值,而不是度量值。 – Tima 2010-12-07 22:57:18
好的,你的区域有多大?哪个区域?如果它不是太大并且不覆盖极点,则不需要数据库中的三角函数。(或者甚至将整个数据从数据库中提取出来,然后处理并写回。) – Philip 2010-12-07 23:00:56
我也考虑过你的“甚至”解决方案:) – Tima 2010-12-07 23:09:36