Stark Wong 的個人開發網站
 


 此頁面:更新於 2016 年 3 月 12 日 14 時 26 分 14 秒,頁面處理需時 0.0058 秒
 網站內容版權所有(C)Stark Wong。頁面(不包括檔案)可自由連結。網站系統版本 1.90-AngularJSBase (2015/9/27)
 
網站地圖

有關流動巴士版圖目前的狀態

流動巴士版圖的資料庫向來都是從多個來源所合成的,然後最近有些來源的變化影響資料庫的可維護性,故需要先說明一下。
首先先列出目前各資料庫的情況:

九巴/龍運巴士:穩定 (準確度90%+)
新巴/城巴:不穩定 (準確度目前90%+,但只能有限度自動維護)
新嶼巴:全手動 (準確度不高於90%,預計以內)
地鐵巴士:全手動 (準確度不高於90%,預計以內)
愉景灣巴士:已停止提供 (因準確度已低於50%)

關於九巴/龍運巴士資料,以前是用全網頁方法取得所需資料,但自從最近的大更新後再無法提供足夠資料。幸運的是找到了另一個穩定性非常高的方法可取得所有需要的資料,至於準確度不足100%是因為時間表目前使用香港巴士大典的資料,但當巴士大典在路線資料生效當天晚上仍然是舊資料時就無可避免地會一直保留著舊資料直至有人回報為止。

關於新嶼巴及地鐵巴士資料:由於沒有提供足夠資料的來源,故目前的資料庫是以純人手輸入及修改,並未有改變這個做法的計劃。

關於愉景灣巴士:本來跟新嶼巴及地鐵巴士一樣手動維護,但因為路線重覆度太高且主要因為禁區關於無 Google 街景服務,以致基本無法確實知道巴士站的實際位置,故停止提供。

關於新/城巴:這個是現時問題的主要成因,本來此資料庫是透過網頁版+純文字版的方法取得足夠資料,然後最近的網站更新引致無法取得足夠資料
- 文字版網頁用來取得街道和分區資料,但目前更新成 nwp3 版本後不再顯示分區及街道,而舊版本的文字版網站已經停用
- 街道目前可用 nwp3 版本的車站資料 API 取得,但既不能批次處理而每次只能取得一個語言版本,以目前2184個車站來計算,若需要重新取得所有車站的街道資料是需要呼叫4368次API,這明顯是一個問題。
- 至於分區,目前已沒有任何方法可知道某個車站所在的分區,而分區搜尋無法直接列出車站,只能列出分區附近的建築物,而建築物本身與車站沒有直接關係,最多只能嘗試用坐標去估算一個車站的所有分區,然而若車站處理分區邊界是誤判機會應該很大。
- 一般路線資料目前使用 mobile api5 取得,但最新的 api6 版本的資料結構與 api5 版本完全不兼容。目前 api5 尚能使用,但當某天終於被停用時,將出現無法避免的變更
- Mobile api6 如同網頁 nwp3 版本一樣,所有路線不再直接提供變化資料,若要取得變化資料則需要每條路線再呼叫一次 API
- 網頁 nwp3 / Mobile api6 版本的路線變化不再以英文代號區分類型,只用變化序號,所以以後很可能會改成跟九巴資料庫一樣不再顯示路線變化 (但時間表仍會顯變化的資料)

但對於分區的問題,最近嘗試了用最近地標的座標估算車站所在的分區,可惜在測試的 2184 個車站裡有約 120 個估算錯誤,所以又是不可能的了。

至於離站時間查詢功能,由於該功能是用第三方的資料來源,而該來源也並非官方認可(正確來說不可能有官方認可),所以每隔一段時間是會有暫時失效導致不準時的情況,這個亦在我可控制範圍以外。但如果失效時間太長,我會考慮將功能停用。

長遠來說,流動巴士版圖應該繼續維護還是該完成歷史任務,這個是需要考慮的問題,畢竟以現在的科技來說,這個軟件的實用程度已大不如前,但維護成本(這裡指時間)卻越來越高。社群維護也可能是其中一個出路,但這個說起來容易,要實行考慮也很多...


撰寫於:2017/4/9 22:42:03 / 回應已關閉
正在讀取回響內容...
其他內容請回到主頁