我想计算两个地理点之间的距离,一个点存储在我的本地数据库中,其他点就是我当前的位置。我怎么能得到它。
我要解雇
SELECT *, 3956 * 2 * ASIN ( SQRT ( POWER ( SIN((@orig_lat - abs(dest.lat)) * pi()/180 / 2), 2) + COS(@orig_lat * pi()/180 )
* COS(abs(dest.lat) * pi()/180) * POWER(SIN((@orig_lon – dest.lon) * pi()/180 / 2), 2)
)) as distance FROM hotels dest having distance < @dist ORDER BY distance limit 10;
这个查询在sqlite中,但正如我在sqlite和stackoveflow上读到的那样,Sqlite不支持数学函数。
所以任何人都知道如何使用C library
和android NDK
在sqlite中为此查询创建用户定义函数?还是有另一种方法可以找到它?
答案 0 :(得分:2)
SpatiaLite functions有点矫枉过正,但肯定会做你需要的。
SpatiaLite是一个开源库,旨在扩展SQLite核心,以支持完全成熟的Spatial SQL功能。