我想从数据库中获取那些距离给定点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 "("
我没有得到查询中的问题所在。请帮忙。