3

根据文档,它说关于 2d 索引:

2d 索引支持在平坦的欧几里得平面上进行计算。2d 索引还支持对球体的仅距离计算,但对于球体上的几何计算(例如 $geoWithin),将数据存储为 GeoJSON 对象并使用 2dsphere 索引类型。

没看懂的几件事。。

  1. 我不明白distance-only是什么意思,它是指和弦(通过表面“内部”的线连接两个表面点的线)?
  2. 该计算如何对地球经度和纬度起作用?如果这是为欧几里得空间设计的,它如何用弧度表示距离?
  3. 相反,使用 2dsphere 索引,它可以正确计算两点之间的表面距离,但它可以在不指定 360 经度线和 180 纬度线的情况下工作。它是否专门针对地球经度和纬度进行了编程?
  4. 如果 3. 以上是正确的。是否考虑到地球是扁球体而不是完美的球体?
4

1 回答 1

1
  1. 不,这意味着使用 Haversine 公式的表面距离。
  2. 我不确定您要询问“它如何以弧度表示距离”,但如果您的意思是纬度/经度角度值和增量如何转换为弧度,则为:PI * 角度 / 180.0。有关完整的 Haversine 公式,请查看此链接以了解 84 种语言的实现:http ://rosettacode.org/wiki/Haversine_formula
  3. 2dsphere 索引使用 WGS84 数据(定义边界)参见:http ://spatialreference.org/ref/epsg/4326/ 。
  4. 不看他们的代码是不可能的。但鉴于他们使用 WGS84 并谈论“类地球体”,这是非常值得怀疑的。我猜他们使用Haversine(所以距离计算只是一个近似值)。
于 2016-11-02T00:50:59.780 回答