全城公交標註系統

來源:互聯網
上載者:User

 

百度地圖提供了穩定高速的地圖服務。但是,由於百度地圖Team Dev尚處於成長期,沒能給廣大二次開發人員提供足夠豐富的API介面,當開發人員需要實現特定功能的時候,百度地圖提供的API往往捉襟見肘。

 

我希望實現這樣一個功能:在地圖任意位置點擊滑鼠,即可獲得所有可以直達該處的公交線路。例如,黑點為滑鼠點擊處,則系統自動列出可以直達到該處的公交線路(藍線)。

 

 

百度地圖API中LocalSearch

TransitRoute等相關函數都不能直接滿足上述需求,並且百度地圖API中並沒有直接查詢大眾運輸路線的介面。百度API唯一提供的相似介面為:使用者給出起始、終點座標(經緯度、名稱等均可),系統返回兩點間的公交方案。

 

為了實現上述功能,通過調研我們發現,ABCMap.com提供了完整的公交查詢方案。不過個人擔心ABCMap.com如果沒有CDN,那麼在部分地區訪問速度可能存在問題,影響使用者體驗。百度訪問速度雖好,但是又不提供相應API介面。能不能把二者結合起來呢?這便是本文的思路。

 

 

(1)利用ABCMap.com提供的介面獲得全城大眾運輸路線,儲存到本機資料庫。個人感覺,這一招有點陰。。。

(2)在百度地圖上尋找滑鼠點擊點附近的全部公交站。這裡,可以把“附近”定義為滑鼠點擊點周圍500m以內範圍(參數可調)。

(3)利用百度地圖提供的API介面在百度地圖上尋找公交線路。對從(2)中獲得的公交站target_station進行如下操作:

  1.  在資料庫中查詢包含該公交站的全部線路,得到這些線路的終點站terminal_station。
  2.  利用百度地圖API,調用search_bus_routing(target_station, terminal_station)得到target_station到terminal_station之間公交線路
  3.  將2中獲得的公交線路繪製於百度地圖上

 

剩下的問題是,在(2)中,如何尋找附近的公交站?這裡我能想到的還是陰招:

  1. 在(1)中已經得到了全部的公交網站名稱,可以在百度地圖上逐個查詢這些網站的座標值,儲存到資料庫中。
  2. 計算任意點附近的公交站時,只需要計算該點與資料庫中儲存的所有公交網站之間的距離,選出“附近”的若干個即可。

 

 

至此,全部搞定。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.