【问题标题】:how to calculate ETA between two points如何计算两点之间的ETA
【发布时间】:2016-05-05 07:48:57
【问题描述】:

我有一种情况,我必须找到 3 公里内所有最近的酒店,并显示它们的距离和给定位置的预计时间。

我的代码用于获取 3 公里附近所有最近的酒店。

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

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

有什么建议可以找到每个位置的预计时间吗?

【问题讨论】:

    标签: mongodb mongodb-query


    【解决方案1】:

    一种可能的解决方案是使用每个位置的历史数据。例如,要在数据库中保存 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

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

    【讨论】:

    • 是的,无法获取历史数据。这些常数将帮助我找到近似的 ETA。有没有其他方法可以将它与谷歌 api 集成?所以我可以得到谷歌在地图上显示的实际预计到达时间。
    • 是的,这是解决方案:stackoverflow.com/questions/1331309/…
    • 谢谢看看。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-30
    • 1970-01-01
    • 2017-08-08
    • 2011-12-21
    • 2013-01-27
    相关资源
    最近更新 更多