$ nearSphere query给出结果java但是如何计算每个结果的距离?

时间:2013-06-14 06:15:31

标签: java javascript mongodb

我在mongoDB中使用$ nearSphere查询。我希望距离和列表按距离排列。

我想在我显示结果的javascript中使用此距离。我用了几个公式来计算地球上各点之间的球面距离。没有给我mongo用于排序的确切距离? 有什么帮助吗?

2 个答案:

答案 0 :(得分:1)

如果你使用$geoNear aggregation command,你也会得到计算出的距离。

我今年在presentation given at MongoDB London中发现了它,它描述了使用$ geoNear(幻灯片36和37)以及MongoDB中的其他地理特征。

或者,您可以了解一些MongoDB地理特征如何在以下某些演示文稿中起作用:

我确定你已经通过Google找到了这个,但MongoDB网站有documentation on Geospatial indexes/queries

答案 1 :(得分:0)

这实际上非常简单。要在java中添加,请创建如下所示的查询 e.g。

BasicDBObject distanceQuery = new BasicDBObject();
BasicDBObject sphereQuery = new BasicDBObject();
sphereQuery.put("$nearSphere",new Double[]{lat, lan});
sphereQuery.put("$maxDistance", radiusInKm/6371);
distanceQuery.put("point", sphereQuery);

在回复中你会得到一个“dist”参数,给出用于获取列表的精确距离。