程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 智能交通之路-查閱Web站點,移動應用,開放數據和APIs獲得公共交通相關信息

智能交通之路-查閱Web站點,移動應用,開放數據和APIs獲得公共交通相關信息

編輯:關於JAVA

簡介:由於像 Google Map 和能夠許多能夠提供大城市公共交通數據的 Web 站點的存在,搭乘公交車 上下班 —— 或者來往於機場、商場或者球場公園 —— 變得比以往更加容易。Scott Davis 介紹了如何 利用那些可以幫助公共交通變得更加智能的技術來指導您如何去您想去的地方。

公共交通減少了交通擁擠和由此產生的污染。同時還降低了用戶的壓力水平和需要支付的費用。現在 許多 Web 站點和移動應用程序幫助全球各個城市的乘客,購物者和游客成為合乎道德的利己者,幫助他 們利用交通選項。本文將向您介紹一些巧妙的技術,讓您能夠搭乘公車(或者輕軌,或者 EI,或者地鐵 )到您想去的地方,就像在公園散步那樣簡單。更好的是,您可以將部分此類技術融合到您個人的應用程 序中,使您能夠對他們的交通機會了如指掌。

交互式 Web 站點幾年前就開始提供地圖和駕駛向導。向路人詢問那些無聊的七拐八拐的駕駛路線的日 子已經一去不復返了;您只需在這些網站中輸入起點和終點地址,在線引擎就會完成剩下的工作。Google Maps 是公認的用途最廣泛的地圖網站。在它 2005 年 2 月發布後的幾個月內,Web 開發人員就對 Google Maps 進行反向設計,並將從其他網站獲得數據導入,在 Google 地圖上顯示結果從而創建了 mashups。一個無恥的黑客甚至還將 Yahoo!的實時交通數據和 Google 的駕駛向導聯系起來。這使得正 式的 Google Maps API 於 2005 年 6 月發布。Google Maps 產品的經理開玩笑說,“我們之所以這麼做 是因為其他人已經在這麼做了”。

Google Maps

通過發布官方的 API,Google 用一種巧妙而大膽的方式轉變了 Web 站點的焦點。現在它是一副只欠 最後一筆的作品,而不是任意程序員可以能夠進行自我創作的畫布。Mashups 幾乎在一夜之間萌發,它告 訴人們哪裡能找到最便宜的汽油,警察在哪裡設置超速陷阱,以及其他在路上能幫助駕駛員的信息。

這種自己動手的精神在樂於乘公車出行的幾位 Google 員工身上也可見一斑。2005 年 12 月,Google Transit Trip Planner 問世。能夠選擇駕駛向導或者公共交通是它的一個特性,該特性基於今天的 Google Maps — 只要查看緊鄰 Get Directions 按鈕的下拉菜單。(您也可以選擇步行和自行車向導。 )

花一點時間試用一下這一新功能。選擇您家鄉的兩個主要旅游景點 — 購物中心,運動場和機場是典 型的好選項 — 並在它們之間選擇公共交通向導。

Google Maps 允許您相對寬松地設置起點和終點。我分別在 A 和 B 位置輸入 Flat Iron Crossing, Broomfield, CO (一個大型購物中心)和 Coors Field, Denver, CO (Colorado Rockies 比賽的棒球 場)。這兩個地址都出現在我模糊搜索建議清單的接近頂部位置,只需單擊一下,相應的信息就會出現在 適當位置。不需要知道任意目標的准確地址,我現在就能獲得兩地之間的路線,如圖 1 所示:

圖 1. Google Maps 顯示的公共交通向導

當您在 Google Maps 中選擇了公共交通,您還需要提供一個額外的標准 — 您想要的出行時間。因為 公車和鐵路遵循特定的時間表,您需要確保您在正確的時間出現在正確的地方。單擊 Show Options 來顯 示 Arrive 和 Depart 的區域,並選擇您想要出發和到達的任一時間。Google Maps 會調整相應的建議路 線,如圖 2 所示:

圖 2. 在 Google Maps 中調整您的出行時間

在您嘗試過購物中心和運動館之後,試著輸入您的家庭地址和工作地址。我發現離我家只需 5 分鐘的 地方有一個室內的停車換乘停車場,只要購買公車票就能白天免費停車。特快巴士可以在離我公司幾個路 口的地方放下我。在高峰時間,兩個小時內每 10 分鐘就有一輛巴士經過。無需停止,無需中轉,無需等 待,我每天上班都能有一個毫無耽擱的公共交通解決方案。Google Maps,謝謝你。

Google Transit

如果您所在的城市在 Google Maps 上沒有顯示公共交通選項,這是因為您所在當地交通機構沒有向 Google 提交它的詳細清單。您可以訪問 Google Transit 網站,如圖 3 所示,查看您所在城市是否在清 單上:

圖 3. 查看您所在的交通機構是否出現在 Google Transit 中

想要加入到 Google Maps 中,交通機構只需簡單地按 General Transit Feed Specification(GTFS )格式提供它的路線數據,將其放置在一個大眾可訪問的 URL,讓 Google 知道在哪裡找到它。在這之後 ,Google 會每隔一段時間下載這些文件,確保使用最新的信息來計算路線。

GTFS 格式是一系列相關的逗號分隔值(CSV)文件。例如,圖 4 顯示了一些機構,站點和路線的示例 數據:

圖 4. GFTS 格式的簡單例子

如果您是一個經驗豐富的編程人員,您或許很驚異 Google 選擇使用 CSV 文件,而不是更新的格式, 例如 XML 或者 JavaScript Object Notation(JSON)。在一個固定 URL 中的 CVS 文本 ZIP 文件並不 是用於劃分界限,而是盡可能地移除阻止參與到項目中的技術壁壘。作為一個行業,我們似乎在無休止地 爭論 Web 服務的復雜解決方案的相關優點,比如 SOAP 對 REST 和 XML 對 JSON;這個簡單的解決方案 也再次提醒了我們在簡潔之中還有高明之處。

“rtd gtfs” 的快速 Web 搜索向我們指明網頁,如圖 5 所示,Denver transit authority(RTD) 提供了它的 GTFS 文件。有了每個站點的緯度/經度坐標,現在我就有了編寫自己 killer Google Maps mashup 的原料。

圖 5. Denver RTD GTFS Web 網頁

如果您想要在一個交通機構升級它的 GTFS 文件時獲得通知,您可以訂閱一個 RSS 提要,您可以有選 擇地指定某個交通機構。例如,我可以查看圖 6 所示的結果,RTD 最後一次升級它的 GTFS 文件是在大 約三周以前。根據提要的歷史記錄,看起來 RTD 大約每隔一季度會升級一次。

圖 6. GTFS Exchange Web 站點

City-Go-Round

City-Go-Round Web 站點在 2009 年 12 月在線推出。除了作為一個開放式交通數據 — 正如它所寫 的,108 個美國交通機構提供開放式數據而 677 個不提供 — 的倡導 Web 站點,它還是一個交通相關的 Web 站點和移動應用的信息交互中心。圖 7 顯示了 City-Go-Round 的主頁:

圖 7.City-Go-Round Web 站點

單擊網頁頂部的 Agencies 鏈接。在那裡,您可以選擇您所在的州,並快速查看在您的區域中有哪些 提供了公共交通。您還可以查看他們是否提供開放式數據。

如果您滾動到網頁的底部,您將會看 到信息可以作為 CSV 或者 JSON 輸出。這些數據包括每個交通授權的緯度/經度坐標 — 這為您的 mashup 提供了更多的資源。在圖 8 中,例如,我正在查找 Colorado 的公共交通選項:

圖 8. 在 Colorado 查找公共交通選項

City-Go-Round 的 About 頁面提供了一個有趣的開放式交通數據的可視化,如圖 9 所示;

圖 9. 可視的開放式交通數據

圖 9 中每個圓圈的大小就表示了相應的交通機構的大小。較暗的圓圈就表示提供開放式數據的機構。

如果您單擊 About 網頁上的圖標,它就會將您帶到 IBM alphaWorks 的 ManyEyes 數據可視化 Web 站點。ManyEyes 應用程序 — 作為一個交互式 Java™ applet 實現— 允許您單擊 各種圓圈來獲取更多信息。

移動電話應用程序

到目前為止我所提到的 Web 站點都是您在家進行旅程規劃的最佳資源。但是當您已經出發在路上時要 怎麼辦?幸運的是,我們還有一個充滿活力的交通相關移動電話應用程序的生態系統。如果您單擊 City -Go-Round 頂部的應用程序鏈接,您將會看到 iPhone、Android,BlackBerry 等等的優化移動應用程序 。

輸入 Denver, CO 會幫您把清單縮短到那些能在該區域內幫助您的應用程序,如圖 10 所示:

圖 10. Denver,Colorado 的移動應用程序

這些應用程序的一部分限制在 RTD 輕軌。其他的注意力則集中在特定的目的地,比如到機場的路線。 每個應用程序的評級,評論和屏幕截圖會幫助您決定哪個才是最符合您需要的。

在評估 — 或者創建您自己的 — 移動應用程序時,一個重要的考慮就是它們是否在本地存儲數據, 或者進行臨時的信息搜集。這對於地鐵乘客來說尤為重要,這些人在地下時經常沒有手機信號。使用本地 存儲的數據能有較快的響應,但是應用程序需要每隔一段時間就進行升級,保證用戶查看的不是過時的信 息。

對一些應用在您自己的移動交通應用程序的靈感(這樣您就不必重新發明眾所周知的輪子),請務必 在 City-Go-Round 上查詢這些好處是免費的或者低收費的。

UniBus

UniBus 是一個 iPhone 應用程序,它提供對所有城市的支持,當然,是那些按 GTFS 格式提供開放式 數據的城市。因為我常常旅行,在我右邊的口袋裡放入格式統一的所有交通信息是一個極具吸引力的遠景 。數據存儲在本地,這樣我還在飛機上時就可以搜索巴士和鐵路線路。這個應用程序還提供 Google Maps 可視化,估計到達時間,保存您 “最喜歡” 的路線等等功能。

Acrossair

Acrossair 是一個 iPhone 應用程序,他使用內置的視頻攝像頭來提供一個您當前位置的實時擴大實 景圖。拿起手機,通過它來看,您可以看到您所在的巴士線路或者最近的地鐵站點在哪。這個功能不是在 所有城市都能應用,但是如果您身在 New YorK、Washington,D.C.,Chicago 或者 San Francisco,而 且您還有一部 3GS iPhone,那麼您就擁有自己的公共交通智能顯示。

One Bus Away

One Bus Away 提供一個實時顯示功能,它可以顯示在任意給定時間一個交通系統中所有巴士的所在位 置。只有幾個交通機構現在向大眾提供實時巴士定位;Seattle 的 King County Metro 就是其中之一。 目前 One Bus Away 只能在 Seattle 及其周邊應用,但是隨著越來越多的交通機構提供其實時數據,勢 必會出現獨立的應用程序。

當我去 Redmond 的途中遇上傾盆大雨,我可以站在遮陽棚下查看我的 iPhone,在 Google Map 上看 我的巴士還要多久能到。每個 10 到 15 秒,那些表示各個巴士的圖標就會在地圖上更新它的位置。一旦 我坐上了巴士,我使用應用程序來計算我離最終目的地還有多遠。我可以看到沿途所有應停站點,這樣我 就知道什麼時候該拉 “Stop Requested” 線。這是我第一次坐巴士,但我感覺像個經驗豐富的老手。

結束語

無論您的意圖是利他還是利己(或者兩者都有),您都應該利用那些您所在城市可用的公共交通選項 。和 Web 站點類似,比如 Google Maps,它幫助您輕松地開始使用,還有倡導網站,比如 City-Go- Round,它為您提供使利用更便捷的所需移動工具。在您開始設計自己的交通應用程序時,它們是不可或 缺的資源。

從社區規劃和技術間交集的更高層次角度來說,您可以開發 The Open Planning Project(TOPP)。 TOPP,一個 “技術驅動的社會性企業”,是世界上生產開放源碼軟件的最大組織之一。交通變革就是 TOPP 的主要倡議之一。例如當 Portland,Oregon 的一流 TriMet 交通系統想要檢測其互動系統地圖, 將其和現有的出行規劃集成一體時,TriMet 和 TOPP 聯手將專有組件替換為開放源碼。(事實是:我曾 擔任這個項目的咨詢師。) TOPP 的另一個偉大項目就是 Streetsblog — 一個新聞資源,在線社區和政 治倡導,它為那些想通過減少對汽車的依賴,改善自行車,步行和公共交通利用者環境,從而改變城市的 個人和組織服務。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved