Rethinkdb 需要计算线路的长度(单位:km)(单位:dB)

Rethinkdb 需要计算线路的长度(单位:km)(单位:dB),rethinkdb,Rethinkdb,我在数据库中的文档中有一个Line对象 我正在寻找一种简单/有效的方法来计算线路的实际距离 我最初的策略是从数据库中提取行,并在Node.js中进行计算,但理想情况下,我希望有一种方法“在盒子中”进行计算 我找不到一种方法来迭代ReQl内的线坐标,并使用距离函数来计算 非常感谢您的帮助。不幸的是,我能找到的唯一方法是将线转换为GeoJSON,转换为点,然后返回计算结果,因为r.line对象中的点似乎无法访问 使用如下对象: { id: 101, route: r.line([-1

我在数据库中的文档中有一个Line对象

我正在寻找一种简单/有效的方法来计算线路的实际距离

我最初的策略是从数据库中提取行,并在Node.js中进行计算,但理想情况下,我希望有一种方法“在盒子中”进行计算

我找不到一种方法来迭代ReQl内的线坐标,并使用距离函数来计算


非常感谢您的帮助。

不幸的是,我能找到的唯一方法是将线转换为GeoJSON,转换为点,然后返回计算结果,因为
r.line
对象中的点似乎无法访问

使用如下对象:

{
    id: 101,
    route: r.line([-122.423246,37.779388], [-121.886420,37.329898])
}
您的查询如下所示:

r.table('data').get(101)('route').do(function(doc){

  var points = doc.toGeojson()("coordinates").map(function(point){
    return r.point(point(0), point(1));
  });

  return {
    "distance": points(0).distance(points(1))
  }

});
或者,因为您可能需要计算一大堆直线距离:

r.table('data').hasFields("route")('route').map(function(doc){
  var points = doc.toGeojson()("coordinates").map(function(point){
    return r.point(point(0), point(1));
  });

  return {
    line: points(0).distance(points(1))
  }
});

嘿,帕特·特拉夫,你找到了不同的答案吗?