arangodb 中 distance() 和 geo_distance() 的区别

Difference between distance() and geo_distance() in arangodb

arango 函数 - DISTANCE() 和 GE0_DISTANCE() 之间有什么区别。我知道他们都是用haversines公式计算距离的。

谢谢, 尼洛帕尔

两者用于两个不同的目的

DISTANCE(latitude1, longitude1, latitude2, longitude2) → distance

该值是使用基于球形地球模型的半正弦公式计算得出的。它计算速度快,精度约为 0.3%,足以满足大多数用例,例如 location-aware 服务。

GEO_DISTANCE(geoJsonA, geoJsonB, ellipsoid) → distance

Return 两个 GeoJSON 对象之间的距离,从每个形状的质心开始测量。有关受支持类型的列表,请参阅地理索引页面。 (参考:https://www.arangodb.com/docs/3.8/aql/functions-geo.html#geo-index-functions

这个 GeoJSON 对象可以是 GEO_LINESTRING、GEO_MULTILINESTRING、GEO_MULTIPOINT、GEO_POINT、GEO_POLYGON 和 GEO_MULTIPOLYGON - 参考< 2>

参考:

  1. https://www.arangodb.com/docs/3.8/aql/functions-geo.html#geo-utility-functions
  2. https://www.arangodb.com/docs/3.8/aql/functions-geo.html#geojson-constructors