郭 岱,侯英姿*,王方雄
(1.遼寧師范大學(xué)遼寧省自然地理與空間信息科學(xué)重點(diǎn)實(shí)驗(yàn)
室,遼寧大連116029;2.遼寧師范大學(xué)城市與環(huán)境學(xué)院,遼寧大連116029)
城市管網(wǎng)移動(dòng)巡檢信息系統(tǒng)的設(shè)計(jì)與開發(fā)
郭岱1,2,侯英姿1,2*,王方雄1,2
(1.遼寧師范大學(xué)遼寧省自然地理與空間信息科學(xué)重點(diǎn)實(shí)驗(yàn)
室,遼寧大連116029;2.遼寧師范大學(xué)城市與環(huán)境學(xué)院,遼寧大連116029)
論文探索了城市管網(wǎng)移動(dòng)巡檢信息系統(tǒng)的設(shè)計(jì)與開發(fā)技術(shù),給出了系統(tǒng)結(jié)構(gòu)、功能界面與數(shù)據(jù)庫等的設(shè)計(jì)方案?;诎俣鹊貓DAPI與Android設(shè)計(jì)開發(fā)了管網(wǎng)瀏覽、管網(wǎng)信息查詢、管網(wǎng)巡檢、巡檢事件處理等服務(wù)功能,為城市管網(wǎng)的巡檢工作提供了智能化、便捷性的移動(dòng)GIS工具。
管網(wǎng)巡檢;Android;百度地圖API;移動(dòng)GIS
在移動(dòng)互聯(lián)網(wǎng)的浪潮下,城市地下管網(wǎng)管理公司傳統(tǒng)的管理方法與GIS(Geographic Information System)技術(shù)與LBS(Location Based Services)云平臺(tái)的融合,可以使城市管網(wǎng)“互聯(lián)網(wǎng)+”理念快速落地實(shí)現(xiàn)。針對(duì)以上需求,本文結(jié)合移動(dòng)GIS的研究背景,將探討城市管網(wǎng)移動(dòng)巡檢信息系統(tǒng)(CPMIIS)在Android平臺(tái)下的設(shè)計(jì)與實(shí)現(xiàn)[1]。該系統(tǒng)采用Android4.4作為開發(fā)平臺(tái),結(jié)合百度地圖API(Android),以城市熱力管網(wǎng)為對(duì)象,開發(fā)具有管網(wǎng)瀏覽、管網(wǎng)信息查詢、管網(wǎng)巡檢、巡檢事件處理等服務(wù)功能的移動(dòng)GIS應(yīng)用服務(wù)系統(tǒng)。
1.1系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
城市管網(wǎng)移動(dòng)巡檢信息系統(tǒng)采用三層C/S結(jié)構(gòu)進(jìn)行設(shè)計(jì)[2],其中,Android客戶端基于Android4.4平臺(tái)與百度地圖Android地圖SDK V3.7.3開發(fā)。服務(wù)器端采用Apache與PHP,基于MVC架構(gòu)的Restful風(fēng)格開發(fā),提供REST接口調(diào)用。數(shù)據(jù)庫采用SQL Server2008版本,主要用來存放管網(wǎng),熱站等數(shù)據(jù),而基礎(chǔ)的地圖數(shù)據(jù)則通過調(diào)取百度地圖服務(wù)來獲得。
1.2系統(tǒng)界面設(shè)計(jì)
系統(tǒng)Android客戶端主要由主界面,用戶登錄界面,用戶詳情界面,屬性查詢界面,巡檢界面,巡檢事件處理界面組成。主界面大部分空間放置MapView,來顯示地圖圖層。依照簡潔,方便的原則,在屏幕左下角采用自定義SatelliteMenu控件,將常用的工具按鈕以旋轉(zhuǎn)展開的方式放置在菜單中。在屏幕右上角,陳列三個(gè)ImageButton按鈕來實(shí)現(xiàn)定位、圖層控制、添加和編輯要素功能,按鈕按下后通過PopupWindow來展開自定義的二級(jí)菜單布局。登錄界面主要由EditText輸入框,及登錄Button,以及緊急呼叫ImageButton,記住密碼的CheckBox復(fù)選框組成。巡檢界面及突發(fā)事情處理界面,采取ActionBar作為主元素,將屏幕大部分空間給予MapView,用以顯示地圖要素的空間位置,結(jié)合ActionBar中的工具按鈕及Button來完成相關(guān)的功能操作。
1.3數(shù)據(jù)庫設(shè)計(jì)
針對(duì)營口市熱力公司的管網(wǎng)數(shù)據(jù),采用SQL Server 2008來設(shè)計(jì)和存儲(chǔ)熱力管網(wǎng)的空間和屬性信息。管網(wǎng)數(shù)據(jù)庫包括管網(wǎng)表、熱站表、閥門表、監(jiān)測(cè)點(diǎn)表、熱源表及公司表。使用PHP開發(fā)服務(wù)器端程序,提供調(diào)用數(shù)據(jù)庫的REST服務(wù)接口。這樣,Android客戶端可以通過建立HttpClient或URLConnection調(diào)用指定接口來訪問管網(wǎng)數(shù)據(jù)。
2.1管網(wǎng)信息查詢
使用MapView控件和BaiduMap對(duì)象從百度地圖服務(wù)器得到基礎(chǔ)地圖服務(wù),在Activity中初始化控件后,通過MapStatusUpdate對(duì)象的animateMapStatus()方法來更新地圖中心點(diǎn)至營口市中心點(diǎn)(40.671N,122.2334E),就可以實(shí)現(xiàn)地圖的顯示、平移、縮放,俯視功能。將熱站,監(jiān)測(cè)點(diǎn)等此類信息在地圖上以指定的Maker樣式來顯示,而管網(wǎng)則以PolylineOverlay的形式顯示。通過BaiduMap對(duì)象的AddOverlay()方法,將以上信息作為圖層與地圖疊加顯示。
在管網(wǎng)的屬性查詢界面中,使用EditText控件并結(jié)合自定義算法,實(shí)現(xiàn)對(duì)用戶輸入的關(guān)鍵詞模糊匹配。并使用Spiner控件加載選擇條件,將查詢結(jié)果根據(jù)指定條件二次匹配。最終,在ListView控件中,使用自定義HeatsiteAdapter將查詢結(jié)果予以展示,完成管網(wǎng)的屬性查詢。在Activity中實(shí)現(xiàn)ListView的OnClickListener接口,在其抽象方法中采用帶ResultCode的Intent回調(diào),完成兩個(gè)Activity之間熱站屬性值的回傳,將點(diǎn)擊的查詢結(jié)果在地圖上進(jìn)行空間顯示。
2.2管網(wǎng)巡檢
針對(duì)不同員工不同巡檢任務(wù)的需求,在用戶登錄界面,建立一個(gè)子線程,在線程中使用HttpURLConnection將用戶輸入的用戶名與密碼作為參數(shù),提交至web服務(wù)器的指定URL,由服務(wù)器端訪問數(shù)據(jù)庫來進(jìn)行驗(yàn)證,返回結(jié)果碼。客戶端通過對(duì)返回的結(jié)果碼進(jìn)行判斷是否準(zhǔn)許登錄。如果驗(yàn)證正確,使用Intent跳轉(zhuǎn)到主界面的同時(shí),會(huì)將User表中用戶的信息,需要巡檢的任務(wù)通過分線程下載到本地的SharedPreferences存儲(chǔ)中。
巡檢任務(wù)的記錄功能通過調(diào)用BaiduMap的serMyLocationEnabled()方法,開啟定位圖層,通過初始化一個(gè)LocationClient并注冊(cè)LocationListener來設(shè)置定位坐標(biāo)系,俯視范圍等參數(shù)。調(diào)用LocationClient的 start()方法開啟定位,同時(shí)選擇枚舉COMPASS(浮動(dòng)羅盤)作為LocationMode。在開始定位Button的單擊事件中,設(shè)置定時(shí)器,每間隔1分鐘調(diào)用LocationClient的getLastKnownLocation()方法獲取當(dāng)前位置,并記錄在應(yīng)用的SharedPreferences中。在巡檢任務(wù)結(jié)束后,會(huì)自動(dòng)開啟分線程,將記錄巡檢軌跡的XML文件以輸出流的形式上傳到服務(wù)器。在服務(wù)端,對(duì)XML文件進(jìn)行SAX解析后,將巡檢記錄數(shù)據(jù)存入數(shù)據(jù)庫中。
巡檢的軌跡回放功能采用ActionBar的設(shè)計(jì)風(fēng)格,在ActionBar上放置Canlender控件來獲取用戶選擇的巡檢日期,并將用戶名和日期作為參數(shù),提交到服務(wù)器端進(jìn)行查詢,待查詢結(jié)果返回后,使用Gson()工具在本地解析。若當(dāng)前日期無任務(wù),以Toast的形式彈出提示。將解析后的數(shù)據(jù)使用綠色的虛線的PolylineOverlay疊加到當(dāng)前圖層上,代表巡檢軌跡。同理,以紅色的實(shí)線PolylineOverlay代表巡檢任務(wù),疊加顯示。方便巡檢人員對(duì)比查看,是否偏離線路。
圖1 巡檢事件智能處理
2.3巡檢事件處理
巡檢中,可能遇到一些例如爆管、管網(wǎng)老化、泄露等突發(fā)事件。針對(duì)以上需求,開發(fā)巡檢事件處理功能。通過在App中注冊(cè)一個(gè)自定義service來保持與web服務(wù)器之間的通信,當(dāng)發(fā)生意外情況時(shí),service會(huì)從web服務(wù)器獲取巡檢事件的信息,并以自定義Notification的形式彈出在手機(jī)通知欄中,以持續(xù)震動(dòng)和響鈴的形式來通知用戶。Notification上會(huì)簡明地描述緊急情況的信息。在Notification圖標(biāo)的單擊事件中,使用Intent進(jìn)入巡檢事件處理界面,并將事故地點(diǎn)以Marker的形式加載在地圖上,使用PopupWindow填充Marker的單擊事件來查看事故詳細(xì)信息。通過ActionBar上的智能分析按鈕,可以根據(jù)各個(gè)熱力公司目前可以出勤的巡檢隊(duì)狀態(tài),結(jié)合最短路徑規(guī)劃算法智能計(jì)算路線與方案,并將最佳解決方案顯示在地圖上。之后系統(tǒng)會(huì)讀取用戶權(quán)限,如果是管理員權(quán)限,則可以手動(dòng)指派任務(wù)或者直接聯(lián)系相關(guān)負(fù)責(zé)人下達(dá)指示。通過在任務(wù)分發(fā)按鈕的點(diǎn)擊事件中讀取不同公司巡檢組的ID值,上傳至服務(wù)器,在服務(wù)端對(duì)命令進(jìn)行解析后,會(huì)將任務(wù)派發(fā)到用戶的App中,后臺(tái)Service對(duì)當(dāng)前命令與用戶ID進(jìn)行校驗(yàn),如果匹配成功,則會(huì)以Notification形式彈出在手機(jī)狀態(tài)欄,提醒用戶。在呼叫按鈕的點(diǎn)擊事件中,會(huì)根據(jù)按鈕所在的布局獲取對(duì)應(yīng)的檢修組負(fù)責(zé)人的電話號(hào)碼,之后調(diào)用“android.intent.action.CALL”隱式Intent,并為App添加撥打電話權(quán)限,來實(shí)現(xiàn)直接電話聯(lián)系相關(guān)負(fù)責(zé)人(圖1)。
最短路徑規(guī)劃算法,實(shí)現(xiàn)了百度地圖提供的OnGetRoutePlanResultListener接口。在分析最短路徑時(shí),會(huì)首先獲取四個(gè)熱力公司中檢修隊(duì)的狀態(tài)(在勤與出勤)。通過對(duì)狀態(tài)的判斷,得到每個(gè)分公司空閑狀態(tài)的巡檢組。之后結(jié)合可以排除巡檢組的熱力公司分公司的位置,選擇ECAR_DIS_FIRST(駕乘檢索策略常量:最短距離)作為DrivingRoutePlanOption的DrivingPolicy,規(guī)劃出最短路徑,并將結(jié)果以DrivingRouteOverlay的形式繪制在地圖上。
基于Android4.4開發(fā)平臺(tái)與百度地圖開發(fā)的城市管網(wǎng)移動(dòng)巡檢信息系統(tǒng),以真實(shí)的管網(wǎng)巡檢管理需求為出發(fā)點(diǎn),結(jié)合營口市熱力公司管網(wǎng)數(shù)據(jù),探索了移動(dòng)GIS與城市管網(wǎng)巡檢的結(jié)合。采用基于百度地圖接口的開發(fā),可以在節(jié)省開發(fā)成本的同時(shí)提高開發(fā)效率,為管網(wǎng)移動(dòng)巡檢系統(tǒng)的開發(fā),提供了借鑒方案。
[1]楊璐,王方雄,王力.城市管網(wǎng)移動(dòng)信息服務(wù)系統(tǒng)設(shè)計(jì)與開發(fā).微型機(jī)與應(yīng)用,2016,35(3):18-20.
[2]張翔,王方雄,崔羽.城市三維管網(wǎng)地理信息系統(tǒng)的設(shè)計(jì)與開發(fā).測(cè)繪地理信息,2015,40(2):17-19.
(2016-08-10收稿S編輯)
The Design and Development of mobile inspection information system for urban network
GUO Dai1,2et al
(1.Liaoning Key Lab of Physical Geography and Geomatics,Liaoning Normal University,Dalian 116029,China;2.School of Urban and Environmental Sciences,Liaoning Normal University,Dalian 116029,China)
Paper explores the design and development of technology of the City Pipes Mobile Inspection Information System,give the design of system structure,function UI and database interface.The system base on BaiduMap API and Android plantform design these functions such asthe browse of the pipeline network,the information query of the pipeline network,the inspection and the solution of the emergency.Providing more intelligent and convenient mobile GIS tools for urban pipeline inspection works.
Pipe Inspection;Android;BaiduMap API;Mobile GIS
TP311.5
A
1003-7853(2016)04-0068-03
郭岱(1993-),男,碩士研究生,主要從事WebGIS,移動(dòng)GIS的設(shè)計(jì)與開發(fā)。
侯英姿(1974-),女,黑龍江大慶人,博士,講師,主要從事G IS建模與技術(shù)應(yīng)用研究。