MongoDB地理距离/半径到有用单位
-
28-09-2019 - |
题
我正在使用MongoDB地理空间查询-$near
,geoNear
等-并且我想知道如何将dis
命令的geoNear
结果以及radius
自变量转换为可读/易读的$within
参数像英里或公里这样的单位。
解决方案
如果数据以地理坐标表示(即30.47921 N -121.45724 W),则需要将基础投影转换为所需的单位(选择保留距离的投影),或者将坐标距离转换为某种形式像英里。
使用Haversine公式进行计算 http://www.movable-type.co.uk/scripts/latlong。html
其他提示
使用geoNear命令获取以km为单位的dis值,然后添加参数: 通用标签
请注意,如果您使用的是Mongodb 2.6.0版,则存在一个错误,该错误始终使球坐标系的新行为返回以米为单位的距离(基于WGS84坐标)。
文档指出,在旧版坐标(而不是GeoJSON)中提供$near
参数仍应返回弧度。此问题已在较新版本中修复。
错误报告:错误#13540
不隶属于 StackOverflow