董振玲
【摘 要】為了加強(qiáng)對(duì)海域資源、環(huán)境、執(zhí)法、災(zāi)害的監(jiān)管,提高日常辦公效率,以及實(shí)現(xiàn)對(duì)海洋管理的信息化、技術(shù)化,文章設(shè)計(jì)和實(shí)現(xiàn)了一個(gè)基于Android系統(tǒng)的海洋海域移動(dòng)巡查系統(tǒng)。該系統(tǒng)利用移動(dòng)設(shè)備的移動(dòng)性,結(jié)合GIS地理信息技術(shù)、GPS定位和GPRS無線網(wǎng)絡(luò)技術(shù),實(shí)現(xiàn)日常巡查的規(guī)范化管理、實(shí)時(shí)性共享和海洋數(shù)據(jù)信息化,可以極大地提高工作效率,加強(qiáng)海洋局對(duì)海洋的科學(xué)管理。
【關(guān)鍵詞】海洋海域;巡查;移動(dòng)終端
【中圖分類號(hào)】TP311.52 【文獻(xiàn)標(biāo)識(shí)碼】A 【文章編號(hào)】1674-0688(2017)04-0026-04
近年來,我國海洋經(jīng)濟(jì)迅猛發(fā)展,海域使用需求持續(xù)增長[1],海洋海域是沿海城市經(jīng)濟(jì)發(fā)展和人民群眾生產(chǎn)生活的重要資源。海域巡查[2]是海洋管理部門通過現(xiàn)場(chǎng)踏勘對(duì)各類用?;顒?dòng)實(shí)施監(jiān)督與檢查,全面掌握轄區(qū)內(nèi)實(shí)際用海狀況,依法制止違法行為,規(guī)范海洋資源的使用,促進(jìn)海洋經(jīng)濟(jì)健康穩(wěn)定發(fā)展。
傳統(tǒng)的巡查是通過人員現(xiàn)場(chǎng)查看、相機(jī)拍照留存、紙質(zhì)文檔記錄等方式,費(fèi)時(shí)費(fèi)力,后期資料整理工作量大、效率低,難以滿足現(xiàn)代化管理要求。部分海洋局也開發(fā)一些海域使用動(dòng)態(tài)監(jiān)視監(jiān)測(cè)管理系統(tǒng),但是所有這些工作或建設(shè)成果都還處于分散狀態(tài),還沒有形成系統(tǒng)性和整體性。因此,迫切需要開展基于海洋海域移動(dòng)巡查系統(tǒng)的海洋綜合管理信息平臺(tái)建設(shè)工作,進(jìn)一步完善海洋觀測(cè)體系系統(tǒng),建設(shè)成功能涵蓋海洋環(huán)境監(jiān)測(cè)、海洋災(zāi)害監(jiān)測(cè)預(yù)警、海洋實(shí)時(shí)監(jiān)察、海洋公眾信息服務(wù)的海洋綜合管理信息平臺(tái),實(shí)現(xiàn)海洋資源、環(huán)境、執(zhí)法、災(zāi)害及信息服務(wù)的移動(dòng)化、數(shù)字化、科學(xué)化、透明化管理。
本文基于Android系統(tǒng),結(jié)合GIS地理信息技術(shù)、GPS[3]定位和GPRS無線網(wǎng)絡(luò)技術(shù),經(jīng)過分析海洋局的實(shí)際需求和業(yè)務(wù)流程,開發(fā)了海洋海域移動(dòng)巡查系統(tǒng)。
1 系統(tǒng)總體結(jié)構(gòu)
系統(tǒng)總體結(jié)構(gòu)如圖1所示。系統(tǒng)主要包含移動(dòng)終端、監(jiān)控中心巡查管理系統(tǒng)及防火墻等相關(guān)設(shè)備。
移動(dòng)終端使用Android SDK[4]與Eclipse平臺(tái)進(jìn)行開發(fā),配合移動(dòng)設(shè)備GPS芯片、GIS for Android[5]、Http通信協(xié)議、4G網(wǎng)絡(luò)及SQLite數(shù)據(jù)庫[6]等技術(shù),提供實(shí)時(shí)向后臺(tái)提供外出巡查人員的實(shí)時(shí)位置,發(fā)現(xiàn)相應(yīng)海域問題并及時(shí)上報(bào)后臺(tái),對(duì)登錄用戶的信息進(jìn)行修改,地圖可視化操作,地圖高亮顯示后臺(tái)相關(guān)海域,同步服務(wù)器信息,以及地圖測(cè)量等功能。
監(jiān)控中心巡查管理系統(tǒng)通過運(yùn)用JAVA EE技術(shù)及三層架構(gòu)開發(fā)方法,使用Jsp+Html技術(shù)編寫網(wǎng)頁界面,struts2框架技術(shù)中的Actionsupport類進(jìn)行請(qǐng)求并調(diào)用后臺(tái)服務(wù)接口獲取數(shù)據(jù),利用百度地圖進(jìn)行地圖展示和各種操作。實(shí)現(xiàn)了系統(tǒng)的案件上報(bào)管理、人員管理、任務(wù)管理、文件管理等模塊功能。
系統(tǒng)分為4層架構(gòu):網(wǎng)絡(luò)系統(tǒng)層、數(shù)據(jù)資源層、支撐服務(wù)層及應(yīng)用層。
2 系統(tǒng)功能及實(shí)現(xiàn)
系統(tǒng)分為移動(dòng)終端服務(wù)子系統(tǒng)、外網(wǎng)綜合服務(wù)子系統(tǒng)、內(nèi)網(wǎng)巡查管理子系統(tǒng)。系統(tǒng)功能層次如圖2所示。
2.1 移動(dòng)終端服務(wù)子系統(tǒng)
移動(dòng)終端服務(wù)子系統(tǒng)主要包括巡查員登錄管理,巡查任務(wù)管理,疑點(diǎn)疑區(qū)拍照、錄音、錄像及地點(diǎn)標(biāo)注等記錄,GIS地圖定位,信息查詢等管理,數(shù)據(jù)上傳及系統(tǒng)維護(hù)功能。
(1)案件上報(bào)。巡查上報(bào)模塊界面提供EditText組件用于輸入案件描述,提供Spinner組件選擇巡查單位,經(jīng)緯度默認(rèn)GPS獲取到的地理信息,巡查人員默認(rèn)選登錄用戶,圖片信息通過Android設(shè)備自帶拍照添加并進(jìn)行相應(yīng)壓縮,提供提交Buttion組件,點(diǎn)擊“提交”按鈕獲取所有案件信息并將信息封裝成一個(gè)實(shí)體類,利用谷歌Gson工具將實(shí)體類解析為Json數(shù)據(jù),通過HttpClient類調(diào)用后臺(tái)接口,后臺(tái)將Json數(shù)據(jù)解析成實(shí)體類并保存在數(shù)據(jù)庫中,返回相關(guān)提示信息,客戶端接收提示信息并做出對(duì)應(yīng)界面的更新。
(2)巡查任務(wù)。主界面點(diǎn)擊巡查上報(bào)模塊。巡查上報(bào)模塊界面提供ListView組件用于展示任務(wù)列表,通過HttpClient類調(diào)用后臺(tái)接口獲取任務(wù)列表,ListView組件綁定后臺(tái)返回的任務(wù)列表。通過給ListView注冊(cè)O(shè)nListItemClick事件監(jiān)聽可以實(shí)現(xiàn)點(diǎn)擊某一任務(wù)進(jìn)行任務(wù)查看,利用TextView組件實(shí)現(xiàn)對(duì)任務(wù)信息的詳細(xì)展示,根據(jù)任務(wù)當(dāng)前的狀態(tài)提供“開始按鈕”“結(jié)束按鈕”“暫緩按鈕”,點(diǎn)擊“結(jié)束按鈕”和“暫緩按鈕”需要提交暫緩理由和任務(wù)總結(jié)文字描述,確認(rèn)后調(diào)用后臺(tái)更改任務(wù)狀態(tài)并刷新任務(wù)列表。
提供制定任務(wù)按鈕,提供任務(wù)名稱、任務(wù)來源TextView文本輸入框,Spinner組件選擇接收人員,人員數(shù)據(jù)通過調(diào)用后臺(tái)接口獲取,圖片信息通過Android設(shè)備自帶拍照添加并進(jìn)行相應(yīng)壓縮,提供提交Buttion組件,點(diǎn)擊“提交按鈕”獲取輸入信息并將信息封裝成一個(gè)實(shí)體類,利用谷歌Gson工具將實(shí)體類解析為Json數(shù)據(jù),通過HttpClient類調(diào)用后臺(tái)接口,后臺(tái)將Json數(shù)據(jù)解析成實(shí)體類并保存在數(shù)據(jù)庫中,返回相關(guān)提示信息,客戶端接收提示信息并做出對(duì)應(yīng)界面的更新。
(3)地圖。地圖采用Arcgis離線地圖,下載Arcgis地圖相應(yīng)Jar包放到Libs文件夾后方可對(duì)地圖進(jìn)行相應(yīng)的操作。利用ArcGIS10.2軟件制作離線切片地圖Tpk包,將Tpk包放到Android設(shè)備內(nèi)存,通過下面代碼可以加載出地圖:
MapView mMapView=(MapView)view.findViewById(R.id.home_arg_map);
ArcGISLocalTiledLayer localMap=new ArcGISLocalTiledLayer(offlinemapPath);
mMapView.addLayer(localMap);
其中,offlinemapPath是Tpk包在Android設(shè)備內(nèi)存中的位置。加載完地圖后,根據(jù)MapView類的zoomin()、zoomout()對(duì)地圖進(jìn)行放大、縮小操作。下面詳細(xì)介紹其他功能。
定位采用百度地圖API定位功能,從百度地圖官網(wǎng)下載百度定位Jar包放至Libs包中,在AndroidManifest.xml文件中添加百度密匙聲明后可正常使用定位功能,利用百度地圖可以周期性地獲取當(dāng)前位置信息并保存在系統(tǒng)中。地圖模塊點(diǎn)擊“定位按鈕”后獲取經(jīng)緯度信息,利用nowLocationLayer定位圖層顯示出來,代碼如下:
Point pt=locationChangeToMapPoint(location);//轉(zhuǎn)換成地圖坐標(biāo)
Graphic centerGraphic = new Graphic(pt, symbol);
nowLocationLayer.addGraphic(centerGraphic);
MapView.addLayer(nowLocationLayer);
Arcgis離線地圖自帶測(cè)量工具,通過給MapView注冊(cè)onSingleTap事件監(jiān)聽,實(shí)現(xiàn)觸摸地圖取點(diǎn)監(jiān)聽。長度測(cè)量實(shí)現(xiàn)方法為取點(diǎn),將點(diǎn)按照順序量成一個(gè)Polyline對(duì)象,利用Polyline對(duì)象中的calculateLength 2D方法測(cè)出長度。同理,測(cè)面積為將點(diǎn)按照順序量成一個(gè)Polygon對(duì)象,利用Polygon對(duì)象的calculateArea2D方法測(cè)出面積。
在疑點(diǎn)疑區(qū)功能中,需要聯(lián)合地圖在地圖上圈出疑點(diǎn)疑區(qū)區(qū)域,這時(shí)需要地圖的畫圖功能。實(shí)現(xiàn)原理為取一系列點(diǎn)后將其封裝成Polygon對(duì)象,再將Polygon對(duì)象封裝成幾何圖形Graphic對(duì)象,利用下面代碼將Graphic對(duì)象添加到地圖:
GraphicsLayer.addGraphic(Graphic);
MapView.addLayer(GraphicsLayer);
完成對(duì)幾何圖像顯示到地圖的效果,即畫圖功能。
(4)疑點(diǎn)疑區(qū)。疑點(diǎn)疑區(qū)模塊界面提供ListView組件用于展示疑點(diǎn)疑區(qū)列表,通過HttpClient類調(diào)用后臺(tái)接口獲取任務(wù)列表,ListView組件綁定后臺(tái)返回的任務(wù)列表。通過給ListView注冊(cè)O(shè)nListItemClick事件監(jiān)聽可以實(shí)現(xiàn)點(diǎn)擊某一疑點(diǎn)疑區(qū)進(jìn)行查看,利用TextView組件實(shí)現(xiàn)對(duì)疑點(diǎn)疑區(qū)信息的詳細(xì)展示,同時(shí)聯(lián)調(diào)地圖高亮展示疑點(diǎn)疑區(qū)區(qū)域。
提供“上報(bào)疑點(diǎn)疑區(qū)區(qū)域按鈕”,進(jìn)入輸入疑點(diǎn)疑區(qū)信息上報(bào)界面,界面與案件上報(bào)基本一致,唯一不同的是需要為疑點(diǎn)疑區(qū)添加疑點(diǎn)區(qū)域,區(qū)域信息以List保存,將區(qū)域邊界一系列點(diǎn)按照順序保存,傳輸?shù)胶笈_(tái)再按照順序解析出來。
(5)系統(tǒng)接口。移動(dòng)巡查子系統(tǒng)接口主要采用spring+webservice CXF+REST技術(shù),接口請(qǐng)求主要使用POST方式和Josn+HttpClientCXF+REST技術(shù)。照片等附件上傳方式采用Josn傳輸保存。部分接口列表見表1。
2.2 外網(wǎng)綜合服務(wù)子系統(tǒng)
外網(wǎng)綜合服務(wù)子系統(tǒng)主要為海洋海域移動(dòng)巡查終端和外網(wǎng)用戶提供服務(wù),采用Java語言開發(fā)。主要實(shí)現(xiàn)用戶認(rèn)證、巡查任務(wù)發(fā)布、巡查記錄管理、巡查軌跡的監(jiān)控管理及地圖規(guī)劃、定位、查詢、分析等管理功能,以及綜合查詢統(tǒng)計(jì)等功能。
2.3 內(nèi)網(wǎng)綜合服務(wù)子系統(tǒng)
內(nèi)網(wǎng)巡查管理子系統(tǒng)主要進(jìn)行巡查結(jié)果后續(xù)處理及銜接其他業(yè)務(wù)系統(tǒng),采用Java語言開發(fā)。主要包括巡查問題的落實(shí)跟蹤、巡查人員績效考評(píng)、綜合查詢統(tǒng)計(jì)及對(duì)其他系統(tǒng)信息服務(wù)等功能。
3 數(shù)據(jù)庫設(shè)計(jì)
海洋海域移動(dòng)巡查系統(tǒng)所涉及的數(shù)據(jù)庫表、多媒體信息和存儲(chǔ)過程,根據(jù)業(yè)務(wù)用途可分為2類數(shù)據(jù)結(jié)構(gòu)。一類是用于移動(dòng)巡查系統(tǒng)內(nèi)部日常管理信息,另一類是涉及存儲(chǔ)日常海域監(jiān)管業(yè)務(wù)信息。
在移動(dòng)巡查系統(tǒng)設(shè)計(jì)中,用戶管理、設(shè)備管理和巡查任務(wù)管理是一個(gè)很重的內(nèi)容。因?yàn)檫@部分設(shè)計(jì)將影響軟件和移動(dòng)巡查終端的用戶登錄功能、用戶和設(shè)備管理功能、巡查路線的設(shè)計(jì)。所以在本系統(tǒng)的設(shè)計(jì)過程中,需要明確用戶與移動(dòng)巡查終端、用戶權(quán)限、設(shè)備與巡查線路的關(guān)系,以便實(shí)現(xiàn)用戶管理功能、設(shè)備管理功能和移動(dòng)終端在系統(tǒng)登錄中的用戶認(rèn)證和設(shè)備認(rèn)證、線路管理的操作。
具體實(shí)體關(guān)系圖如圖3所示。
系統(tǒng)使用了SSH框架鏈接數(shù)據(jù)庫,在Tomcat服務(wù)器啟動(dòng)的時(shí)候,通過xml配置文件注解的方式注入實(shí)例化Hibernate框架,具體xml配置代碼如圖4所示。
實(shí)例化Hibernate框架后,實(shí)體類可以通過注解與數(shù)據(jù)庫連接,通過框架中的Session類的sava()、delete()、update()、createQuery()方法實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的增、刪、查、改操作。
4 結(jié)論
海洋海域移動(dòng)巡查系統(tǒng)通過運(yùn)用JAVA EE技術(shù)及三層架構(gòu)開發(fā)方法,實(shí)現(xiàn)了系統(tǒng)的案件上報(bào)管理、人員管理、任務(wù)管理、文件管理等模塊功能,讓辦公人員可以通過移動(dòng)設(shè)備完成工作,提高了巡航效率,使得管理透明化、信息化、精確化,對(duì)沿海管理海洋的相關(guān)部門具有重要的意義。
參 考 文 獻(xiàn)
[1]王江濤.我國海洋空間資源供給側(cè)結(jié)構(gòu)性改革的對(duì)策[J].經(jīng)濟(jì)縱橫,2016(4):39-44.
[2]李佼,龔岳松,鄭曉陽.淺談上海市海域動(dòng)態(tài)監(jiān)視監(jiān)測(cè)管理系統(tǒng)設(shè)計(jì)[J].海洋開發(fā)與管理,2014(1):14-18.
[3]沈少青,洪宇,鄭志文,等.基于立體觀測(cè)網(wǎng)的海洋綜合管理信息平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].測(cè)繪通報(bào),2017(5):
96-100.
[4]吳昊,趙冬青,黃志勇,等.基于Android的控制點(diǎn)手持維護(hù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].測(cè)繪科學(xué),2017(1):177-
192.
[5]李欣.基于位置服務(wù)的移動(dòng)GIS應(yīng)用模式研究[J].測(cè)繪科學(xué),2006(6):182-184.
[6]許艷萍,馬兆豐,王中華,等.Android智能終端安全綜述[J].通信學(xué)報(bào),2017(6):169-184.