如何在sqlite中创建用户定义的函数或获取2个geopint之间的距离?

时间:2013-04-30 11:44:07

标签: android sqlite geolocation distance

我想计算两个地理点之间的距离,一个点存储在我的本地数据库中,其他点就是我当前的位置。我怎么能得到它。

我要解雇

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 libraryandroid NDK在sqlite中为此查询创建用户定义函数?还是有另一种方法可以找到它?

1 个答案:

答案 0 :(得分:2)

SpatiaLite functions有点矫枉过正,但肯定会做你需要的。

  

SpatiaLite是一个开源库,旨在扩展SQLite核心,以支持完全成熟的Spatial SQL功能。

Android version

相关问题