1

指定されたポイントから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 "("

クエリのどこに問題があるかわかりませんでした。助けてください。

4

1 に答える 1

2

Android を使用している場合は、Location クラスのdistanceTo()メソッドを使用することをお勧めします。DBにこの操作を実行するように要求しません

詳細はこちら

于 2013-01-24T18:22:48.730 に答える