我正在尝试在mongodb中使用自定义函数来计算某些值,但不知道如何使用它。 有avgStartLongitude,avgStartLatitudes,avgEndLongitude和avgEndLatitude。由一项活动分组。它显示了在某处开始和结束的活动的位置。我需要通过使用函数来计算它们之间的距离。
这是需要进行计算的集合:http://prntscr.com/d3cn4m
以下代码显示(以某种方式不起作用)我如何尝试使用该函数来计算:
function calcDistance(lat1, lon1, lat2, lon2) {
var R = 6371; // Radius of the earth in km
var dLat = (lat2 - lat1) * Math.PI / 180; // deg2rad below
var dLon = (lon2 - lon1) * Math.PI / 180;
var a =
0.5 - Math.cos(dLat)/2 +
Math.cos(lat1 * Math.PI / 180) * Math.cos(lat2 * Math.PI / 180) *
(1 - Math.cos(dLon))/2;
return (R * 2 * Math.asin(Math.sqrt(a)))<100;
};
db.opg3.aggregate(
{
$project:
{
activityType:"$_id",
avgDistance:"$calcDistance($avgStartLat,$avgStartLon,$avgEndLat,$avgEndLon)"
}
}
)
代码不返回avgDistance。事实上,它似乎什么都不做,我不知道如何让它发挥作用..
关于如何使用此功能的任何想法?
谢谢!