首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用JDO查询Haversine

用JDO查询Haversine
EN

Stack Overflow用户
提问于 2013-03-08 07:05:23
回答 1查看 144关注 0票数 0

我需要帮助才能使用JDO执行此查询:

代码语言:javascript
复制
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。The source is Google

这就是你所需要的:

代码语言:javascript
复制
public static ArrayList<User> getUsers(double lat, double lng, double distance) {
    PersistenceManager pm = PMF.get().getPersistenceManager();
    Query query = pm.newQuery(¿?¿?¿?);

    ...

    return users;
}

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2013-03-21 19:44:38

来自:http://db.apache.org/jdo/jdoql_methods.html

代码语言:javascript
复制
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 (即ASCDESC)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15283566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档