指定されたポイントから2km以内など、指定された距離にあるポイントをデータベースから取得したいと考えています。このために、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 "("
クエリのどこに問題があるかわかりませんでした。助けてください。