1

我想从数据库中获取那些距离给定点2公里以内的指定距离的点。为此,我在 sqllite 中使用以下查询,

    public Cursor GetLoc(int lat, int longi, int dist)
    {   
        Cursor c = db.rawQuery("SELECT *, ((Math.acos(Math.sin("+ lat +"* PI() / 180) * Math.sin("+ LATITUDE +"* PI() / 180) + Math.cos("+ lat +"* PI() / 180) * Math.cos("+LATITUDE+"* PI() / 180) * Math.cos(("+ longi +" - "+LONGITITUDE+") * PI() / 180)) * 180 / PI()) * 60 * 1.1515 * 1.609344) AS distance FROM " + LOCATION_TABLE +" WHERE distance = " + dist, null);
        return c;
    }

在此查询中,LATITUDE 和 LONGITITUDE 是 LOCATION_TABLE 的列。

这个查询在 mysql 中给出了正确的结果,但在这里它给出了这个错误

 android.database.sqlite.SQLiteException: near "("

我没有得到查询中的问题所在。请帮忙。

4

1 回答 1

2

如果您使用的是 Android,我建议使用 Location 类的distanceTo()方法。我不会要求数据库执行此操作

更多信息在这里

于 2013-01-24T18:22:48.730 回答