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