Spring MongoDB 使用 NearQuery 获得距离

问题描述

我正在尝试获取不同位置的距离(以米为单位)。

我的查询如下所示:

final NearQuery nearQuery = NearQuery.near(new org.springframework.data.geo.Point(longitude,latitude)).spherical(true);
final Aggregation a = newAggregation(geoNear(nearQuery,"distancetoNextVehicle"));
final AggregationResults<TrafficLight> results =
        mongoTemplate.aggregate(a,TrafficLight.class,TrafficLight.class);
List<TrafficLight> result = results.getMappedResults();

问题是距离 (distancetoNextVehicle) 的结果是错误的值。例如,当我将 -101.29899 作为经度和 48.40227378 作为查询中的输入的纬度时,我的数据库中是一个具有经度 -101.29899 和纬度 48.4106602 的文档。然后我得到的距离值 1.4637064145502492E-4 转换为 0.00014637064145502492 的实数,但我应该得到的是 932.5 的值。

来自 TrafficLight 类的相关值:

private org.springframework.data.geo.Point position;
private double distancetoNextVehicle;

作为我实现的模板,我使用了 How to get distance - MongoDB Template Near function

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...