我有一个问题。我想在 Android 应用程序中获取谷歌地图上最近的点。不同的点/坐标存储在 sqlite 数据库中。我必须从他们那里得到最近的 5 个。我正在使用的查询是:
SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distance FROM markers HAVING distance < 25 ORDER BY distance LIMIT 0 , 5;
但是我收到错误,即“没有这样的函数:acos存在”。 正确的解决方案是什么
最佳答案
默认情况下,SQLite 不支持任何三角函数,因此您无法在 SQL 查询中使用它们。
您可以获取坐标列表并在应用程序代码中对其进行处理,也可以尝试使用用户定义的函数在 SQLite 中公开 Java 的三角函数(请参阅 How can I create a user-defined function in SQLite? )。
关于android - 不存在这样的 acos 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14165073/