在MongoDB中,可以创建可用于在"2d"one_answers"3d"空间中查找给定纬度和经度的文档near
的索引。
MongoDB使用什么样的公式来计算两个给定的纬度/经度对之间的距离?
我想到的几个是:
- 欧几里得距离
- Haversine公式
- Vincenty公式
MongoDB(2.2版本)只支持二维地理空间索引,而不支持三维。
使用MongoDB B树索引之上的geohash系统对各个位置进行编码。
在MongoDB 1.8+中,支持使用小数度数进行查询的Spherical校正。
有两种主要类型的距离计算:
- 平面-欧几里得距离。源代码参考为db/geo/core.h:
distance()
- 球体-n-矢量。源代码参考为db/geo/core.h:
spheredist_rad()