本文介绍了没有这样的ACOS函数存在的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个问题。我想在谷歌地图中的Andr​​oid应用程序的最近点。不同点/坐标被存储在源码数据库。而且我必须得到他们最近的5。我使用的查询是:

I've a problem. I want to get the nearest points on google map in android app. Different points/coordinates are stored in sqlite database. And I have to get the nearest 5 from them. The Query I'm using is:

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 的存在。
什么将是其妥善的解决方案。

But I'm getting an error i.e. "no such function: acos exists".What will be its proper solution

推荐答案

SQLite不支持任何默认三角函数,所以你不能在SQL查询中使用它们。

SQLite doesn't support any trigonometric functions by default, so you can't use them in SQL queries.

您可以获取应用code坐标和处理它的列表,或者你可以尝试和用户自定义函数暴露在SQLite的Java的三角函数(见how SQLite中创建用户定义的函数?)。

You can either fetch the list of coordinates and process it in application code, or you can try and expose Java's trigonometric functions in SQLite with user defined functions (see how to create a user defined function in SQLITE?).

这篇关于没有这样的ACOS函数存在的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-14 12:28