MongoDB使用什么样的公式来计算地理索引中的距离



在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()

最新更新