2016-05-05 183 views
3

我有一種情況,我必須找到距離3公里內所有最近的酒店,並顯示他們的距離和預計的時間給定的位置。如何計算兩點之間的ETA

我的代碼取3公里左右所有最近的酒店。

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

在這裏我能夠得到所有對象的距離,但我不知道如何獲得每個位置的估計時間。

任何建議如何找到每個位置的估計時間?

回答

0

一個可能的解決方案是使用每個位置的歷史數據。例如,要保存數據庫中用戶1從位置1到位置2的時間以及用戶2在相同路徑上的時間,然後根據該數據計算ETA。

但是,如果你沒有訪問歷史數據,然後使用一些恆定的速度值,例如:

  • 魅力。速度與城市中的車輛35km/h
  • avg。速度徒步5km/h
  • avg。速度與自行車在城市20km/h
  • avg。速度與公共交通30公里每小時

瞭解這些值:

eta_in_minutes = (distance_in_km * 60)/constant_estimated_speed_in_km_per_h

請注意,這些只是我的估計,他們可能不是很準確,所以只用這些數值玩找出哪一個最適合您的需求。

+0

是獲取歷史數據是不可能的。這些常數將幫助我找到近似的ETA。 有沒有其他的方式來整合這與谷歌API?所以我可以得到谷歌在地圖上顯示的實際ETA。 – zulekha

+0

是的,這裏是解決方案:http://stackoverflow.com/questions/1331309/extracting-trip-eta-from-google-maps-api-possible – sc3w

+0

謝謝你會看看它。 – zulekha

相關問題