唐 棠 王俊驊
(同濟大學道路與交通工程教育部重點實驗室 上海 201804)
改革開放以來我國的公路建設蓬勃發展,截止2011年底,全國公路總里程達到410.64萬km,其中高速公路規模達到8.49萬km[1]。隨著公路建設不斷發展,道路養護所需的投入也越來越大。公路建設管理正在逐漸由初期的建設為主養護為輔,向建設養護并重發展。但是大規模的公路養護僅靠以前的人工管理方法已經不能保證公路發揮其應有的等級功能,公路養護需要向簡單化、智能化、便捷化發展,以保證道路養護措施的科學合理。
在此背景之下,本文提出并實現了基于當今流行的Android操作系統的道路養護信息采集系統。這一系統的實現,不僅簡化了養護信息采集過程,也簡化了養護信息的后期錄入過程。格式化錄入的養護信息有利于養護信息的批量處理,對于簡化繁重的道路養護信息處理工作具有重要的意義。
系統采用離線工作的方式,養護信息采集者運用手機系統界面離線記錄養護信息。外業采集的信息以數據表的形式存儲在系統的輕量化數據庫SQLite3中。巡查工作獲得的數據可以按照表格的形式導出成Excel工作簿,將手機與電腦連接便可將數據導入電腦端處理。初次使用系統需初始化導入GPS樁號、道路編號信息等路段信息,實現某些特征字段的自動化輸入。系統外業工作原理見圖1,內業數據導入見圖2。

圖1 系統外業工作原理示意圖

圖2 系統內業數據輸出示意圖
運用功能模塊化的知識將系統劃分為幾個具有特定功能的模塊。模塊劃分示意圖見圖3,其中負責完成信息輸入的為路面病害信息輸入模塊、路基病害輸入模塊、沿線設施維護模塊、橋梁經常檢查模塊、隧道經常檢查模塊和涵洞經常檢查模塊。照片管理模塊和信息與查詢模塊負責后期的養護信息修改與查看。最后3個模塊,即數據庫存儲模塊、GPS樁號轉換模塊和數據庫輸出模塊是用戶不可見的。設計中將它們封裝在不同的類中,通過類函數來調用模塊的功能。3個模塊作為前面8個模塊的支撐而設計。例如路面病害輸入模塊中的樁號獲取功能,其樁號的計算獲取過程需依托GPS樁號轉換模塊。

圖3 系統模塊劃分示意圖
根據養護信息采集對象的不同,采集的數據也不相同。針對不同的養護信息采集模塊需要分別進行數據庫設計。
道路病害分為3個大類,分別為路面病害、路基病害和沿線設施維護[2]。
(1)路面病害。我國高等級公路大部分為瀝青路面,所以本設計以瀝青路面的病害為對象設計。瀝青路面病害可歸納為11種,分別為:龜裂、塊狀裂縫、縱向裂縫、橫向裂縫、坑槽、松散、沉陷、車轍、波浪擁包、泛油、修補。針對每種不同的病害,對其進行描述的屬性也會更改。例如龜裂的損壞程度為輕、重、中3種,塊狀裂縫的損壞程度為輕、重2種。
(2)路基病害。路基病害歸納為8種,分別為:路肩邊溝不潔、路肩損壞、邊坡坍塌、水毀沖溝、路基構造物損壞、路緣石缺損、路基沉降、排水系統淤塞。
(3)沿線設施維護。沿線設施維護歸納為5種,分別為:防護設施缺損、隔離柵損壞、標志缺損、標線缺損、綠化管護不善。
以上3種病害類型中1條病害記錄所需要包含的屬性主要為以下幾點:路線名稱、調查方向、調查時間、調查人員、樁號、路面寬度、調查內容、損壞程度、損壞數量、單位、病害原因、病害位置、病害是否突出、是否罩面等。
橋梁經常檢查所需要完成的項目共有19種[3],分別為:翼墻、耳墻、錐坡、護坡、橋臺、橋墩、基礎、地基沖刷、支座、上部結構異常變形、橋與路連接、伸縮縫、橋面鋪裝、人行道、緣石、欄桿、護欄、標志、標線、排水設施、照明系統、橋面清潔、調治構造物、(其他)。
橋梁經常檢查中1項項目所具有的屬性為:管理單位、路線編碼、路線名稱、橋位樁號、橋梁編碼、橋梁名稱、養護單位、負責人、記錄人、檢查日期、部件名稱、缺損類型、缺損范圍、保養措施意見。
隧道經常檢查的項目共有8種[4],分別為:洞口、洞門、襯砌、路面、檢修道、排水設施、吊頂、內裝。
隧道經常檢查中1項項目所具有的屬性為:隧道名稱、左/右洞、隧道編碼、路線名稱、路線編碼、養護機構、檢查日期、天氣狀況、檢查人、記錄人、里程樁號、項目名稱、檢查內容、狀態描述、判定結論。
涵洞經常檢查所需要完成的項目共有6種,分別為:進水口、出水口、涵身兩側、涵身頂部、涵底鋪砌、涵附近填土。
涵洞經常檢查中1項項目所具有的屬性為:線路名稱、路線編號、檢查單位、檢查人、記錄人、檢查時間、涵洞樁號、病害部位、病害名稱、病害數量、病害單位、病害描述、病害發展狀況。
本信息采集系統基于Android手機系統開發。開發工具采用的是谷歌公司免費提供的ADT套件。Google公司為簡化環境的搭建操作,在下載的包中融合了Eclipse和ADT,開發者無需配置,解壓縮后下載需要的Platform后配置好SDK,運行Eclipse即可開始創建Android應用程序[5]。
系統開發過程涉及許多關鍵技術,其中數據庫存儲、GPS定位并自動轉換樁號等是實現數據錄入和簡化錄入操作的重要技術,而數據庫按規則導出系統規定的excel數據表則是實現外業采集數據導入電腦實現電腦端自動處理,完成自動評價的關鍵技術。
安卓中已經封裝了對SQLite3數據庫的支持,可以通過繼承SQLiteOpenHelper類來實現數據庫更新、建立數據表等操作[6]。實現數據庫存儲首先需要建立業務存儲輔助類RoadMaintenaceDbAdapter,然后繼承SQLiteOpenHelper并實現相關方法,之后對RoadMaintenaceDbAdapter類設置初始化、打開數據庫和關閉數據庫的方法,最后定義供外部調用的數據庫操作函數。
在安卓系統中可通過LocationManager系統服務獲得設備所在位置的經緯度、海拔、速度等信息。但是如何將經緯度信息轉換為樁號等道路相關信息則需要一定的算法。通常的想法是建立樁號與GPS位置信息對應的表格,通過遍歷來實現樁號的匹配。但是當樁號數據量比較大時,遍歷數據庫將會花費比較長的時間。為提高檢索效率,系統利用樁號連續的特點,將樁號值按順序讀入隊列中,并根據位置對隊列更新。隊列更新算法能減少查找時間,加快GPS樁號轉換速度。
數據庫存儲的數據如何轉換為Excel工作簿是實現手機采集數據與電腦處理軟件對接的關鍵技術。數據庫導出excel模塊需要完成將外業采集數據庫按照電腦端軟件可識別的信息結構導出,以實現電腦對采集數據的自動處理得到評價結果。實現這一功能需要使用Java操作Excel的工具類庫jxl.jar。Java開發人員可以通過它讀取Excel文件的內容、創建新的Excel文件、更新已經存在的Excel文件。系統通過數據庫的查詢命令獲得的信息可以利用jxl.jar寫入Excel工作簿中。
道路養護信息采集系統可用于路面、路基、橋梁等的日常巡查信息錄入,下面以路面病害輸入為例對系統功能進行說明。
將APP安裝到手機后,點擊圖標進入首頁。首頁以九宮格設計,實現對不同功能的導航。首頁設計見圖4。

圖4 信息采集系統首頁功能導航布局
點擊路面病害圖標,進入輸入界面,見圖5。按照順序,依次完成路線名稱、調查方向等信息的錄入。其中調查時間和樁號可以通過輸入框旁的按鈕自動獲取。輸入完成后可點擊本地存儲按鈕,存儲在本地數據庫中。

圖5 路面病害輸入界面
本系統以現今流行的Android系統為基礎,針對目前道路養護信息采集工作以人工為主,工作效率低下的現狀,開發了適合于道路養護信息采集工作的Android軟件。軟件的開發設計結合Android設備的功能加入了GPS定位獲取樁號、病害照片拍攝關聯、自動獲取時間等功能,加快了信息輸入速度,也對傳統記錄信息加以補充。Android手機的普及,使得軟件的推廣不需要額外的硬件投入,系統在道路養護信息采集中具有廣闊的應用前景。
[1] 中華人民共和國國家統計局.中國統計年鑒2012:漢英對照[M].北京:中國統計出版社,2012.
[2] JTG H20-2007公路技術狀況評定標準[S].北京:人民交通出版社,2007.
[3] JTG H11-2004公路橋涵養護規范[S].北京:人民交通出版社,2004.
[4] JTG H12-2003公路隧道養護技術規范[S].北京:人民交通出版社,2003.
[5] 吳亞峰,于復興.Android應用開發完全自學手冊[M].北京:人民郵電出版社,2012.
[6] 趙啟朋.Android典型技術模塊開發詳解[M].北京:中國鐵道出版社,2012.