余建軍,彭 艷,張利勇,萬術(shù)海,劉校妍
(1. 浙江省地理信息中心,浙江 杭州 310012; 2. 浙江省第二測繪院,浙江 杭州 310012)
?
移動GIS支持下的 “五水共治”河道督查系統(tǒng)的實現(xiàn)
余建軍1,彭艷2,張利勇1,萬術(shù)海2,劉校妍2
(1. 浙江省地理信息中心,浙江 杭州 310012; 2. 浙江省第二測繪院,浙江 杭州 310012)
為改變傳統(tǒng)的河道督查流程,減少人工督查工作量,使督查工作向信息化方向發(fā)展,本文基于移動GIS技術(shù)開發(fā)了“五水共治“河道督查系統(tǒng),應(yīng)用于河道督查工作。在系統(tǒng)需求分析和數(shù)據(jù)庫設(shè)計的基礎(chǔ)上,綜合運用移動GIS、LBS位置服務(wù)、互聯(lián)網(wǎng)+、云服務(wù)等技術(shù),使用Java、PHP等編程語言,通過移動端(Android、iOS)和Web端分別調(diào)用天地圖移動API和Web API, 實現(xiàn)了系統(tǒng)的各個功能。在應(yīng)用實例的分析中該系統(tǒng)用于浙江省“五水共治“河道督查工作,系統(tǒng)運行穩(wěn)定,界面顯示清晰,數(shù)據(jù)傳輸實時有效,完全能夠滿足河道督查工作的需求,為建立河道長效督查機(jī)制提供了有效方法。
“五水共治”;河道督查;移動GIS;LBS;實時傳輸;云服務(wù)
“五水共治”工作是浙江省委省政府為保護(hù)水環(huán)境采取的一項重要舉措,經(jīng)過努力取得了一定的治水成效,但是問題也隨之而來,治理好的河道往往再次變黑變臭,如何有效防治,河道督查應(yīng)勢而生?!拔逅仓巍焙拥蓝讲楣ぷ饕话阌啥讲槿藛T實地拍照、群眾訪談、文字記錄等流程組成,然后人工整理督查資料、撰寫督查報告,整個流程比較冗余、瑣碎,耗時、耗人、耗力,且存在督查問題不能及時反饋給工作人員的問題[1]。本文通過研究將移動GIS、互聯(lián)網(wǎng)+、LBS位置服務(wù)等技術(shù)用于河道督查,開發(fā)了基于移動GIS的“五水共治”河道督查系統(tǒng),實現(xiàn)督查人員手機(jī)巡檢河道,實時傳輸空間地理位置數(shù)據(jù)、多媒體數(shù)據(jù)、文字?jǐn)?shù)據(jù),建立手機(jī)端與Web端實時互動的督查工作模式,改進(jìn)傳統(tǒng)的督查工序,有利于“五水共治”長效督查機(jī)制的建立。
一、系統(tǒng)設(shè)計
1. 需求分析
“五水共治”河道督查工作需要記錄被督查河道的空間位置、現(xiàn)場照片及文字描述等信息,然后人工整理,電腦輸入等,并且要考慮反饋問題的及時處理,建立問題反映者與處理者之間信息化的溝通機(jī)制[2]。鑒于這些需求,數(shù)據(jù)庫設(shè)計應(yīng)首先能滿足多源、不同格式數(shù)據(jù)存儲問題,系統(tǒng)設(shè)計應(yīng)能滿足實時傳輸,且應(yīng)方便多源數(shù)據(jù)的調(diào)用顯示問題。
2. 數(shù)據(jù)庫設(shè)計
數(shù)據(jù)庫設(shè)計時有兩個需要解決的問題:一是移動端與服務(wù)端數(shù)據(jù)同步問題,通過數(shù)據(jù)庫表里的唯一GUID實現(xiàn)關(guān)聯(lián)同步;二是移動端存儲顯示問題,全省需要督查河道約有6000多條,且為空間多段線,有些復(fù)雜河道涉及空間結(jié)點眾多。傳統(tǒng)的矢量存儲顯示方式通過程序讀取空間數(shù)據(jù)到設(shè)備內(nèi)存,根據(jù)用戶的選擇(如圖層、區(qū)域等)將圖形顯示到屏幕上, 將會使圖形放大、縮小顯示的速度慢得無法忍受, 顯示的圖形也會密密麻麻無法辨認(rèn)??紤]到任意時刻移動終端屏幕顯示的圖形數(shù)據(jù)只是全部矢量數(shù)據(jù)的一部分, 因此適當(dāng)減少移動終端讀入非屏幕顯示區(qū)域的矢量數(shù)據(jù), 在不影響屏幕圖形數(shù)據(jù)顯示的同時可以大大提高圖形顯示速度[3]。按照這種方法, 數(shù)據(jù)庫設(shè)計時對移動終端空間數(shù)據(jù)的組織管理采取了分級分區(qū)域的存儲結(jié)構(gòu)[4-5]。初始啟動程序時,系統(tǒng)主界面以點的形式顯示河道位置,當(dāng)縮放到一定級別時以線的形式顯示河道;督查用戶登錄系統(tǒng)后首先選擇督查工作區(qū)域(即所在縣市區(qū)),系統(tǒng)只顯示督查區(qū)域內(nèi)的河道,可通過工作區(qū)域設(shè)置重新選擇縣市區(qū),顯示督查河道。
考慮到手機(jī)存儲特點,移動端采用sqlite輕量型嵌入式數(shù)據(jù)庫,移動端存儲河道數(shù)據(jù)、省控斷面數(shù)據(jù)、手機(jī)用戶的注冊信息、督查記錄、本地多媒體數(shù)據(jù)等數(shù)據(jù);云服務(wù)器端采用MySQL開源數(shù)據(jù)庫,存儲數(shù)據(jù)包含河道數(shù)據(jù)、省控斷面數(shù)據(jù)、手機(jī)用戶、治水工作人員管理表、權(quán)限表、督查記錄、處理進(jìn)度、多媒體數(shù)據(jù)等多張數(shù)據(jù)表; 多媒體數(shù)據(jù)以文件系統(tǒng)存儲在云服務(wù)器上,相應(yīng)數(shù)據(jù)表存儲對應(yīng)文件路徑,方便系統(tǒng)檢索調(diào)用。其中user表、record表包含的屬性字段見表1。

表1 user表、record表屬性字段
3. 系統(tǒng)邏輯結(jié)構(gòu)
通過上述的需求分析及數(shù)據(jù)庫設(shè)計,系統(tǒng)邏輯結(jié)構(gòu)如圖1所示。

圖1 系統(tǒng)邏輯結(jié)構(gòu)
二、功能實現(xiàn)
1. 系統(tǒng)開發(fā)運行環(huán)境
為保證督查河道、省控斷面等空間地理信息數(shù)據(jù)的流暢顯示,移動系統(tǒng)開發(fā)采用了安卓、蘋果App原生開發(fā)模式,安卓版開發(fā)環(huán)境為jdk1.7+ Android SDK+ADT插件,編程平臺為Eclipse軟件,開發(fā)語言為Java[4];蘋果版開發(fā)環(huán)境為iOS SDK+MAC OS,編程平臺為Xcode軟件,開發(fā)語言為Objective-C[6]。Web端系統(tǒng)空間數(shù)據(jù)發(fā)布軟件為GeoServer,網(wǎng)絡(luò)服務(wù)器為Tomcat,開發(fā)框架為SSH架構(gòu),編程平臺為Eclipse軟件,開發(fā)語言為Java,開發(fā)環(huán)境為jdk1.7。云服務(wù)端采用Thinkphp框架,開發(fā)語言為PHP,網(wǎng)絡(luò)服務(wù)器為IIS。
系統(tǒng)運行環(huán)境取決于開發(fā)環(huán)境,移動端“五水共治”河道督查系統(tǒng)可應(yīng)用在安卓4. 2(含4.2)、蘋果8.0(含8.0)上,可通過掃描圖2、圖3所示二維碼或通過騰訊應(yīng)用寶、蘋果商店(Apple Store)下載使用。

圖2 安卓手機(jī)二維碼

圖3 蘋果手機(jī)二維碼
2. 系統(tǒng)功能開發(fā)
以安卓端功能開發(fā)為例,安卓應(yīng)用程序開發(fā)沒有統(tǒng)一的入口,各個應(yīng)用之間是相互獨立的,并且運行在自己的進(jìn)程當(dāng)中。根據(jù)完成的功能不同,安卓劃分了4類核心的組件類:Activity、Service、Broadcast Receiver和ContentProvider。相同組件和不同組件之間的導(dǎo)航通過Intent來完成。安卓還定義了View類來顯示可視化界面,如菜單、對話框、下拉列表等。它的優(yōu)勢在于開放性、開源等,是一個優(yōu)秀的移動設(shè)備操作系統(tǒng)[7-8]?!拔逅仓巍焙拥蓝讲橄到y(tǒng)功能的開發(fā)包含移動端、Web端、服務(wù)后臺3個部分的開發(fā)。移動端功能通過調(diào)用天地圖移動API開發(fā)包實現(xiàn),它是一套基于Android 2.2及以上版本設(shè)備的應(yīng)用程序接口,以JAR包的形式提供各種地圖服務(wù)和數(shù)據(jù),如地圖展示、標(biāo)注、定位等。
Web端功能通過調(diào)用天地圖Web API實現(xiàn),它是一套由JavaScript語言編寫的應(yīng)用程序接口,支持各種地圖應(yīng)用,還可以使地圖功以模塊化集成在系統(tǒng)應(yīng)用中[9-10]。在使用之前需要通過