0

JDO でこのクエリを実行するには、助けが必要です。

SELECT id, ( 3959 * acos( cos( radians(lat_t) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(lng_t) )
   + sin( radians(lat_t) ) * sin( radians( lat ) ) ) ) AS distance 
FROM Stores HAVING distance < 25 
ORDER BY distance

近接座標と多くのインターネット検索で相談しようとしていますが、このアルゴリズム Haversine を見つけました。ソースは Googleです。

これはあなたが必要とするものです:

public static ArrayList<User> getUsers(double lat, double lng, double distance) {
    PersistenceManager pm = PMF.get().getPersistenceManager();
    Query query = pm.newQuery(¿?¿?¿?);

    ...

    return users;
}

ありがとう!

4

1 に答える 1

0

から: http://db.apache.org/jdo/jdoql_methods.html

When writing the "filter" for a JDOQL Query you can make use of some methods on the various Java
types. The range of methods included as standard in JDOQL is not as flexible as with the true Java
types, but the ones that are available are typically of much use.

値を調べて、これらの値に必要なメソッドを適用する必要があります。

順序付け部分については、Queryインターフェイスには というメソッドがありsetOrdering、それに渡しますyourColumn ASC|DESC(つまり、 ASCOR DESC) 。

于 2013-03-21T11:44:37.673 に答える