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