在SQLite中查询获取基于Radius的记录?

前端之家收集整理的这篇文章主要介绍了在SQLite中查询获取基于Radius的记录?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这个查询MysqL中工作正常
SELECT ((ACOS(SIN(12.345 * PI() / 180) * SIN(lat * PI() / 180) +
         COS(12.345 * PI() / 180) * COS(lat * PI() / 180) * COS((67.89 - lon) * 
         PI() / 180)) * 180 / PI()) * 60 * 1.1515 * 1.609344) AS distance,poi.* 
FROM poi
WHERE lang='eng' 
HAVING distance<='30'

距离为公里,输入为lat = 12.345和lon = 67.89

sqlite是3,我不能运行自定义函数与它在Android上。我也没有acos()等…因为这不是标准sqlite的一部分。

如何在sqlite中上面的查询

您可以创建4个新列,即lat和lon的sin和cos。由于在运行查询之前可以在程序中计算cos(ab)= cos a cos b-sin a sin b,并且可以计算sin和cos的其他外观SIN(12.345 * PI()/ 180)表达式简化为可以由sqlite3处理的形式P * SIN_LAT Q * COS_LAT …。

BTW,也见Sqlite on Android: How to create a sqlite dist db function – to be used in the app for distance calculation using lat,long

猜你在找的Sqlite相关文章