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。来源是谷歌

这就是你需要的:

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 回答