在SQLite中查询获取基于Radius的记录?
发布时间:2020-12-12 19:16:57 所属栏目:百科 来源:网络整理
导读:我有这个查询在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.* FR
我有这个查询在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。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |