陳長軍,陳 源
(1.中南財經政法大學外國語學院,湖北 武漢 430073;2.中國地質大學(武漢)遠程與繼續教育學院,湖北 武漢 430074)
地質災害是指因地質動力活動和環境異常變化形成的不良地質現象,如滑坡、地震等[1]。隨著人類活動范圍越來越大,同時伴隨地球地質的變化,其帶來的地質災害也逐漸引起人們重視。由于地質災害具有不確定性、破壞性強等特點,已成為影響社會經濟發展的重要因素之一,嚴重危害著人類生命與財產安全[2]。
根據我國地質災害信息化建設的需要,利用計算機技術等對地質災害地區數據信息進行統計與信息化處理,使人們能夠很方便地查詢地質災害點相關信息已經成為必要手段[3]。隨著地質災害信息化的不斷發展,已誕生了許多研究成果,如地理信息系統(Geographic Information Sys?tem,GIS)等[4]。高德地圖API(應用程序編程接口)具備免費且操作性強的特點,被廣泛用于開發基于地理位置信息的應用軟件與信息管理系統[5]。
隨著互聯網的不斷發展,智能手機作為信息傳輸的載體已融入到人們的日常生活中,移動端Android 系統所占市場份額不斷擴大,因此可利用Android 平臺進行應用軟件推廣[6]。在Eclipse 開發環境下,利用Java 作為開發語言,以簡潔、形象、生動的形式展現地質災害點情況,使地理位置相關信息可視化,并實現地質災害點標注、信息查詢、自我定位、地圖搜索與路線規劃等功能[7]。同時,通過設計與實現UI 布局,實現友好的用戶使用界面。
通過查閱相關文獻了解到,隨著GIS 的廣泛應用,一些系統和APP 均開始用于地質災害信息調查[8-10]。本文總結了相關系統和APP 在技術與功能上的優缺點,并結合實際需求進行改進,設計基于Android 手機客戶端的地質災害點位置導航與信息查詢應用軟件。同時,在實現過程中對系統數據量及oracle 數據庫特性進行分析,利用遠程加解密方式獲取地質災害點的地質災害數據,采取本地SQLite 數據庫用作緩存,從而提高了數據獲取速度,且降低了軟件開發成本。
圖1-圖3 給出了地質災害點位置導航與信息查詢應用軟件的整體技術路線設計,分別為基礎理論研究及軟件分析與設計、軟件開發與實現、軟件測試分析。

Fig.1 Basic theoretical research and software analysis and design圖1 基礎理論研究及軟件分析與設計

Fig.2 Software development and implementation圖2 軟件開發與實現

Fig.3 Software test analysis圖3 軟件測試分析
本文使用三層軟件架構模型,包括:用戶界面層、業務邏輯層、數據訪問層[11]。在三層架構模型的基礎上進行Android 應用軟件開發,既保證了安全性與穩定性,又提升了用戶對軟件的使用體驗。客戶端架構設計如圖4 所示。
軟件設計主要圍繞注冊/登錄、地圖瀏覽、自我定位、地圖搜索、地質災害點標注與信息查詢、出行路線規劃等功能模塊的需求展開。客戶端用戶用例如圖5 所示。
該軟件具有龐大的地質災害點數據,因此不可能將其存儲在本地數據庫,而是需要通過遠程服務器進行讀取,本地數據庫僅用作數據緩存。利用輕量級SQLite 數據庫存儲數據,僅占用很少的Android 系統內存。在實際軟件開發中,SQLite 可保障數據的全面性與安全性,將其用作本地數據庫緩存可加快數據加載速度[12]。
依據地質災害點位置導航與信息查詢應用軟件的功能需求,其本地數據庫由兩部分組成,其中一部分是管理員表,管理員可輸入賬號密碼登錄進入系統。管理員(ad?min)字段主表如表1 所示。

Fig.4 Client architecture design圖4 客戶端架構設計

Fig.5 Client user case圖5 客戶端用戶用例

Table 1 Admin field master table表1 管理員(admin)字段主表
本地數據庫中的另一部分涵蓋了若干地質災害點的災害信息表,根據實際需要將地質災害點的地質災害信息分成4 個不同種類,分別為斜坡(XP)字段主表、崩塌(BT)字段主表、滑坡(HP)字段主表與泥石流(NS)字段主表。這里以斜坡字段主表(見表2)與崩塌字段主表(見表3)為例,滑坡、泥石流字段主表與之類似。
(1)Android 系統應用軟件開發環境搭建。環境配置如下:一是安裝Eclipse,二是安裝Android SDK,三是安裝ADT 插件[13]。

Table 2 Slope field(XP)master table表2 斜坡(XP)字段主表

Table 3 Collapse field(BT)master table表3 崩塌(BT)字段主表
(2)配置高德地圖API。首先申請高德地圖開發者密鑰(key),然后進行高德SDK 配置,在高德地圖中封裝了一些常用功能,如位置導航、自我定位、地圖搜索、路徑規劃等。軟件開發人員在編寫Android 應用程序過程中只需調用高德地圖API 提供的一些特定接口即可實現軟件所需的特定功能[14]。
(1)注冊與登錄。注冊/登錄界面設計原則為清晰且易操作,并在軟件主界面顯示軟件主要功能,如圖6 所示。

Fig.6 Register/login/main interface menu item圖6 注冊/登錄/主界面菜單項
(2)地質災害點標注與信息查詢。地質災害點位置導航與信息查詢應用軟件的標記功能需要根據經度和緯度坐標在高德地圖上進行標記,根據項目名稱、地理位置、經度及緯度添加相關地質災害信息[15]。地質災害信息查詢功能設置崩塌、滑坡、斜坡、泥石流4 大模塊,點擊標注點時彈出該標注點的相關地質災害信息,如圖7 所示。

Fig.7 Geological disaster information query and labeling圖7 地質災害信息查詢與標注
(3)自我定位。設置定位返回按鈕,在代碼實現上需要:設置定位回調監聽函數,利用讀取到的經緯度信息返回自己所在位置;設置定位監聽函數,在自己所在位置進行數據記錄;設置定位成功回調函數,在自我定位功能實現后停止監聽。
(4)地圖搜索。用戶輸入相應目標地址的關鍵詞,即可在地圖上顯示搜索的目標地址及相應經緯度坐標。通過地址查詢經緯度是指用戶輸入地址名稱,程序通過前向地理編碼獲取與該位置對應的經度與緯度[16]。
(5)路線規劃。路線規劃功能模塊提供3 種路線規劃方法:步行路線規劃、騎行路線規劃與駕駛路線規劃。根據起點、終點及數據庫中的地質災害點信息,為人們規劃合理的出行路線,在路線經過的地方可看到相應地質災害點。通過該功能模塊的設計,可保證人們出行安全,同時提高出行效率。
(6)UI 設計。Android 有5 種布局模式:線性、相對、絕對、表格與單幀,通過不同布局模式可輕松實現美觀、實用的UI 界面[17]。
(7)地質災害點數據獲取。通過使用Internet 訪問服務器端數據庫接口獲取地質災害點的地質災害數據信息。移動終端訪問服務器端接口并以參數形式提交地質災害點數據信息與身份識別碼,用于驗證上傳數據的合法性。具體操作如下:Android 客戶端向服務器端發出搜索請求,服務器端驗證身份,若身份匹配則返回相關的地質災害點數據。返回的地質災害數據用json 進行封裝,Android 端接收到數據后解析json 數據串,最后把相關的地質災害點數據展現在地質災害信息查詢功能模塊上[18]。Android 端通過oracle 的jdbc 驅動程序直接訪問oracle 數據庫的客戶端。由于地質災害點位置導航與信息查詢應用軟件連接的是遠程oracle 數據庫,因此使用時必須連接互聯網,從而將地質災害點相關數據信息表讀入本地數據庫。數據獲取界面如圖8 所示。
(8)數據加密與遠程傳輸。應用軟件在遠程調取數據時考慮到數據信息易發生泄露,因此在軟件開發過程中對數據獲取功能添加了加解密措施。在實際應用過程中,應用較多的是RSA 加密技術。RSA 算法是一種常用的非對稱加密算法。為確保信息數據的安全性,需要更安全的公鑰加密技術,因此AES 公鑰加密算法應運而生,AES 算法屬于對稱加密算法[19]。
在使用對稱加密算法AES 之前,為了不讓AES 的密鑰被外人獲取,本文首先利用RSA 加密算法對其公有密鑰進行一次深度加密,使用時通過RSA 解密出其公有密鑰,之后再進行數據傳輸,如此才能保證數據的安全性[20]。
地質災害數據在傳輸過程中可使用技術手段將其轉換成為字符串,對于字符串的操作則簡單的多。在數據傳輸之前,對數據發送方進行身份安全驗證,安全驗證通過之后方可調取數據庫的數據,該操作有點類似于網絡安全通信TCP/IP 協議中的“三次握手機制”。

Fig.8 Data acquisition interface圖8 數據獲取界面
本文結合高德地圖API 及Android 開發技術設計一款地質災害點位置導航與信息查詢應用軟件,通過高德地圖API 嵌入地質災害信息,實現地質災害數據的信息化,同時利用手機端進行推廣,實現對地質災害的監控與預防。隨著GIS 技術日趨成熟,高德地圖API 與數據庫的結合將廣泛應用于地理信息領域。但該軟件還存在不足:一是在軟件實現過程中,相關算法尚有較大的改進空間,可作進一步研究,例如如何能快速查詢地質災害點相關數據,在位置導航過程中如何能更加快速、精確、合理地規劃出行路線等;二是智能手機移動端還可開發支持跨平臺iOS 系統的版本,使iPhone 用戶也可使用該軟件。后續將優化相關算法并探索iOS 系統版本,同時研究如何結合衛星攝像技術將實時地質災害數據上傳到客戶端實現監測預警,以更好地防患于未然。