MongoDB地理距离/半径到有用单位

时间:2010-08-12 18:42:43

标签: mongodb geospatial human-readable

我正在使用MongoDB地理空间查询 - $neargeoNear等 - 而且我想知道如何转换dis geoNear的结果}}命令以及radius查询到/来自可读单位(如英里或公里)的$within参数。

3 个答案:

答案 0 :(得分:20)

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

distanceMultiplier: (6371 * Math::PI / 180.0)

答案 1 :(得分:4)

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

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

答案 2 :(得分:1)

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

文档说明在遗留坐标而不是GeoJSON中提供$near参数仍应返回弧度。这已在较新版本中修复。

错误报告:Bug #13540