我正在使用MongoDB地理空间查询-$neargeoNear等-并且我想知道如何将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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top