如何计算两点之间的ETA

时间:2016-05-05 07:48:57

标签: mongodb mongodb-query

我有一种情况,我必须找到3公里范围内最近的酒店,并显示他们的距离和给定地点的预计时间。

我的代码可以到达3公里左右的所有最近的酒店。

Hotels.geoNear({
  type: "Point",
  coordinates: [userLat, userLng]
}, {
  spherical: true,
  maxDistance: 3000,
  distanceMultiplier: 0.001
}).then(function(hotels) {
  console.log(hotels);
});

在这里,我可以获得所有物体的距离,但我不知道如何获得每个位置的估计时间。

有任何建议我如何找到每个地点的预计时间?

1 个答案:

答案 0 :(得分:0)

可能的解决方案是使用每个位置的历史数据。例如,要在数据库中保存user1从location1到location2所需的时间,以及当user2在同一路径上时,然后根据该数据计算ETA。

但是,如果您无法访问历史数据,请使用一些恒定速度值,例如:

  • 平均。城市汽车速度 35km / h
  • 平均。步行速度 5km / h
  • 平均。城市自行车的速度 20km / h
  • 平均。公共交通的速度 30km / h

了解这些值:

eta_in_minutes = (distance_in_km * 60) / constant_estimated_speed_in_km_per_h

请注意,这些只是我的估计,它们可能不是很准确,所以只需使用这些值来找出哪一个最适合您的需求。