我試圖實施某種個人實時總線跟蹤器,並且我被這個問題困住了:讓我們說A點是我的起源,E點是我的目的地。點B,C和D是定義公交車具體路線的航點。每隔15秒鐘我就會獲取公交車的最新位置,然後我需要向用戶顯示剩餘的預計時間,以便根據其路線到達目的地。Google maps API:根據預定義的路線計算剩餘時間
在Google Directions API中,每個停靠點都會被考慮進去,忽略公交車在指定路線內的當前位置。實際上,例如,如果我通過C點,那麼A,B和C點應該不在計算範圍內,因爲公交車已經停靠在這些點上。
如何使用GMaps API實現類似的功能?可能嗎?
編輯:如果有任何幫助,我在Node.js服務器上這樣做,我無法控制位置的更新間隔。這是因爲我對一個API進行外部調用,該API返回指定總線的位置。當然,我可以撥打多少次電話,但返回的位置只會每15秒更新一次。還有一個調用返回所有緯度/經度座標,構成路線,將它們用作Google Directions的路徑參數。
我明白,知道路線的起點和終點,並且知道路線上的公交車當前位置,我可以確定下一次撥打Google Directions API時必須考慮哪些路點。但是,我怎麼能確定巴士是否在路線內呢?我怎樣才能確定路線內的「進展」?我找不到一個明顯的方法來做到這一點。
UPDATE:
所以我跟着Loreda L的答案,並檢查是否我可以利用谷歌距離矩陣API,而不是谷歌的方向。但我仍然無法解決問題。例如,讓我們用這個調用示例:
https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=-23.307339,-51.171461&destinations=-23.306628,-51.165768|-23.312134,-51.167751|-23.320006,-51.166655|-23.324167,-51.160821
在這裏,我有lat = -23.307339
和lon = -51.171461
原點,但是我們要說的是,公交車的線路,使得它的位置現在是取得了進展:lat = -23.315229; lon = -51.170670
,這是成功的一半這條路線上兩點之間的路。然後讓我們再次撥打電話:
https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=-23.315229,-51.170670&destinations=-23.306628,-51.165768|-23.312134,-51.167751|-23.320006,-51.166655|-23.324167,-51.160821
您可以在瀏覽器上進行這些調用以查看結果。正如我所看到的,這些數據並沒有告訴我關於給定路線內的旅行時間的任何信息。它只是返回目的地和原點之間的個人旅行距離和時間,但是這些距離的計算並未考慮我選擇的路線。您可以檢查它在谷歌地圖:
https://www.google.com.br/maps/dir/'-23.307339,-51.171461'/Condom%C3%ADnio+Comercial+Paula+Center,+Rua+Borba+Gato,+1170+-+Jd+Am%C3%A9rica,+Londrina+-+PR,+86010-630/@-23.3191734,-51.1753824,14.75z/data=!4m22!4m21!1m13!2m2!1d-51.171461!2d-23.307339!3m4!1m2!1d-51.1655654!2d-23.3066109!3s0x94eb44a453d12405:0x4fe6589ceb2a7640!3m4!1m2!1d-51.1679874!2d-23.3121241!3s0x94eb44a7b0b222bd:0xebae4eed90aa817!1m5!1m1!1s0x94eb436e990ab02f:0xbea600ba72575bee!2m2!1d-51.1606428!2d-23.324045!3e0
您也可以使用谷歌地圖查看相同的電話,這一次:
https://maps.googleapis.com/maps/api/directions/json?origin=-23.307339,-51.171461&destination=-23.324167,-51.160821&waypoints=-23.306628,-51.165768|-23.312134,-51.167751|-23.320006,-51.166655
我仍然沒有把握如何利用這些數據來達到我想要的。
您可以顯示您迄今爲止嘗試使用的代碼嗎? –
@ S.P.H.I.N.X我的系統仍然不處理任何數據。它只是打電話並返回結果。我仍在研究如何使用Google的API進行此操作。 – Pedro