5

我正在使用 MongoDB 地理空间查询—— $near,geoNear等——我想知道如何将命令的dis结果geoNear以及查询的radius参数转换为$within英里或公里等可读单位。

4

3 回答 3

20

使用 geoNear 命令以公里为单位的 dis 值添加参数:

distanceMultiplier: (6371 * Math::PI / 180.0)
于 2011-03-16T08:36:50.013 回答
4

如果您的数据在地理坐标中(即 30.47921 N -121.45724 W),那么您需要使用您想要的单位转换您的基础投影(选择保留距离的投影),或者您需要将坐标中的距离转换为类似英里的距离。

使用 Haversine 公式进行计算 http://www.movable-type.co.uk/scripts/latlong.html

于 2010-08-14T04:50:47.557 回答
1

请注意,如果您使用的是 Mongodb 版本 2.6.0,则存在一个错误,它始终启用球坐标系的新行为以返回以米为单位的距离(基于 WGS84 坐标)。

文档指出,$near在旧坐标而不是 GeoJSON 中给出参数仍应返回弧度。这已在较新的版本中得到修复。

错误报告:错误 #13540

于 2014-06-22T18:40:47.240 回答