談曉珊 高 軍
(水利部南京水利水文自動化研究所,江蘇南京 210012)
隨著水利行業(yè)改革發(fā)展的進程加快,水利信息化系統(tǒng)需要有多種信息的展示手段以及處理突發(fā)性災(zāi)害的隨機應(yīng)變能力。目前大多需通過計算機才能查詢詳盡的水利監(jiān)測信息,難以隨時隨地獲取,而手機查詢平臺存在信息發(fā)布實時性差、功能較為單一、靈活性差、穩(wěn)定性不高等問題[1]。隨著智能無線技術(shù)的發(fā)展,筆記本電腦、手機、平板電腦等支持WIFI 的移動終端走入人們的生活,使得移動服務(wù)成為獲取信息的一個更加便捷的途徑。Android 是一種以Linux 為基礎(chǔ)的開放源碼操作系統(tǒng),在智能手機市場中占有率比較高,為全球最受歡迎的操作系統(tǒng)。筆者根據(jù)水利信息查詢的實際需求,總結(jié)計算機及手機水利水文信息發(fā)布項目經(jīng)驗,引入手機電子地圖功能,基于Android 開發(fā)水利信息查詢平臺。這一新的平臺能有效保障各有關(guān)部門及時全面掌握相關(guān)信息,迅速應(yīng)對突發(fā)災(zāi)情,提高指揮調(diào)度科學水平[2]。
ArcGIS Runtime SDK for Android是美國Esri 公司的移動端GIS 解決方案,將GIS 的適用范圍從內(nèi)業(yè)擴展到外業(yè),同類還有:ArcGIS Runtime SDK for IOS、ArcGIS Runtime SDK for Flex、ArcGIS Runtime SDK for Silverlight等。ArcGIS Runtime SDK for Android使用戶能夠使用Java 語言構(gòu)建多種應(yīng)用程序,這些應(yīng)用程序?qū)⑦\用ArcGIS Server 提供的強大的制圖、地理編碼、地理處理和自定義功能,并將它們部署到Android 設(shè)備上。ArcGIS for Android 除了能夠使用ArcGIS for Server 發(fā)布的各種服務(wù)之外,還能使用微軟公司的Bing Maps,OGC(Open Geospatial Consortium)的WMS(Web map service)服務(wù)等。ArcGIS for Android 還支持例如疊加分析、緩沖區(qū)分析等各種空間分析,具有在線編輯、在線網(wǎng)絡(luò)分析能力[3]。
“天地圖”是國家測繪局主持建設(shè)的國家地理信息公共服務(wù)平臺,是中國區(qū)域內(nèi)數(shù)據(jù)資源最全的地理信息服務(wù)網(wǎng)站。其目的在于促進各行業(yè)地理信息資源共享和高效利用,提高地理信息公共服務(wù)能力和水平,豐富測繪地理信息成果的服務(wù)方式,更好地滿足國家信息化建設(shè)的需要,為社會公眾的工作和生活提供方便?!疤斓貓D”裝載了覆蓋全球的地理信息數(shù)據(jù),以矢量、三維、影像3 種模式多角度、全方位展現(xiàn),能縮放,可漫游[4]。
與此同時,“天地圖”以門戶網(wǎng)站和服務(wù)接口兩種形式為用戶提供服務(wù)。根據(jù)項目需要,我們采用ArcGIS Runtime SDK for Android 調(diào)用天地圖的地理信息服務(wù)。
Web Service(Web 服務(wù))是一個用于支持網(wǎng)絡(luò)間不同機器互操作的軟件系統(tǒng),是一種自包含、自描述和模塊化的應(yīng)用程序,可以在網(wǎng)絡(luò)中被描述、發(fā)布和調(diào)用,是基于網(wǎng)絡(luò)的、分布式的模塊化組件。Web Service 建立在通用協(xié)議的基礎(chǔ)之上,如:HTTP、SOAP(Simple Object Access Protocol)、UDDI、WSDL 等,這些協(xié)議在操作系統(tǒng)、編程語言和對象模型的選擇上沒有任何傾向,有著很強的生命力[5]。
對于移動終端等設(shè)備而言,其計算資源、存儲資源都十分有限,因此,Android 應(yīng)用只是充當Web Service的客戶端,調(diào)用遠程Web Service[6]。本項目采集到的實時數(shù)據(jù)都存儲在信息中心的服務(wù)器上,我們將采用在Android 中調(diào)用遠程服務(wù)器端提供的Web Service 來完成平臺功能的一系列開發(fā)。
為了使平臺能夠有比較強的可拓展性、易用性及可移植性,采用SOA 技術(shù)的服務(wù)器群集部署架構(gòu)。水利水文監(jiān)測的實時采集處理程序都在服務(wù)器運行,因此將所有的業(yè)務(wù)邏輯處理運行在服務(wù)器端,僅在客戶端保留展示層,以完成顯示和交互的任務(wù),不進行業(yè)務(wù)數(shù)據(jù)處理,提高了系統(tǒng)運行的效率;客戶端不直接訪問數(shù)據(jù)庫端,通過Web Service 實現(xiàn)數(shù)據(jù)的分布處理,加強了平臺的靈活性,有效地降低了對數(shù)據(jù)庫服務(wù)器負載能力的要求[7]?;贏ndroid 的水利信息查詢平臺由基礎(chǔ)數(shù)據(jù)層、業(yè)務(wù)邏輯層、通訊網(wǎng)絡(luò)層及終端表現(xiàn)層構(gòu)成,如圖1。其中,業(yè)務(wù)邏輯層以Web Service 方式調(diào)用服務(wù)器的數(shù)據(jù),并對其進行一些預(yù)處理和分析,通過IIS發(fā)布,為各移動終端訪問服務(wù)器數(shù)據(jù)提供有效通道。
(1)本系統(tǒng)是一個綜合性的水利信息移動應(yīng)用平臺,既滿足對實時信息的監(jiān)測與處理,又支持信息的發(fā)布和預(yù)警,可充分利用移動終端設(shè)備的優(yōu)點,為水利水文工作者提供便捷的服務(wù)。
(2)對水情、雨情、氣象、臺風路徑、衛(wèi)星云圖等實時信息進行查詢,交互式地完成個人對移動終端設(shè)備的各種操作。
(3)通過處理實時雨水情監(jiān)測等基礎(chǔ)信息,制作簡潔直觀的雨水情統(tǒng)計圖表,直觀顯示在GIS 電子地圖上并分類分級顯示。
本水利信息查詢平臺嵌入GIS電子地圖,實現(xiàn)了信息通過地圖直觀表達,為相關(guān)決策提供直接依據(jù)。系統(tǒng)功能模塊主要包括:實時地圖、雨情信息、水情信息、工情信息、風情信息、臺風信息、警報預(yù)警、雷達圖、衛(wèi)星云圖、天氣預(yù)報等,如圖2。
(1)實時地圖
平臺將雨量、水位、水庫等各種類型的站點直觀顯示在“天地圖”上,可進行一些GIS 操作,并能直接點擊查詢?nèi)我粏蝹€站點的具體信息,同時對超過雨強報警和水位警戒線的非常規(guī)站點用不同顏色標注,讓操作者及時掌握該區(qū)域站點情況。
(2)雨情信息
根據(jù)用戶需求選擇查詢雨情的時間段和站點,可主動請求服務(wù)器顯示雨量報表(包括站碼、站名、類別,雨量),根據(jù)不同的雨量強度在表格中標注出不同級別的站點,可以直接切換查看雨量直方圖,并可按年、月、日分別展示,如圖3。
圖1 平臺總體架構(gòu)
圖2 平臺功能模塊
圖3 系統(tǒng)界面和功能截圖
(3)水情信息
根據(jù)用戶需求選擇查詢水情的時間段和站點,可主動請求服務(wù)器顯示水位報表(包括站碼、站名、類別,水位),在表格中標注出超過警戒值的站點,可以直接切換查看水位曲線圖。
(4)工情信息
該模塊用于查詢水庫、水閘、堤防、灌區(qū)、圍墾等各種防洪工程的基礎(chǔ)信息。
(5)風情信息
平臺獲取沿海風情監(jiān)測站點信息,以站名、風向、風速、最新時間為列,按照風速從大到小順序顯示風情報表,并支持點擊查詢某個風情監(jiān)測站過去24 h 風速曲線圖。
(6)臺風信息
通過主動請求服務(wù)器發(fā)布平臺,可獲取臺風信息,實時顯示當前西太平洋上活動的熱帶氣旋及相關(guān)信息,包含名稱、時間、經(jīng)緯度、氣壓、風速等信息,同時可顯示臺風移動路徑。
(7)警報預(yù)警
提供雨情警報、水情警報、氣象警報、臺風警報信息查詢。系統(tǒng)可將超過警戒雨量、警戒水位、緊急氣象、臺風信息實時發(fā)送到用戶手機中,用戶也可以訂閱自己特別關(guān)心的站點信息。
(8)雷達圖
該功能通過請求中國氣象局雷達圖服務(wù),獲取雷達圖,可以在第一時間發(fā)現(xiàn)危險天氣的臨近,及時做好預(yù)防措施。
(9)衛(wèi)星云圖
該功能通過請求中國氣象局衛(wèi)星云圖服務(wù),獲取最新的衛(wèi)星云圖,支持屏幕自適應(yīng)。
(10)天氣預(yù)報
該功能通過請求天氣預(yù)報服務(wù),顯示主要天氣信息,有利于相關(guān)人員及時掌握現(xiàn)在和未來的氣象趨勢。
(11)相關(guān)資料
提供防洪知識庫、其他資料等信息瀏覽與查詢,用戶可自行添加相關(guān)的資料信息。
本系統(tǒng)是以NET、ArcGIS Server和Android 為開發(fā)平臺,在Eclipse 開發(fā)環(huán)境中,針對水利的業(yè)務(wù)信息特點,調(diào)用“天地圖”服務(wù),利用Java 語言,基于ArcGIS Runtime SDK for Android的接口進行開發(fā)。
(1)實時地圖展示
ArcGIS Runtime SDK for Android提供了Tiled Service Layer 類。這是訪問切片服務(wù)的基礎(chǔ)類,通過擴展就可以訪問“天地圖”的WMTS 服務(wù),并將業(yè)務(wù)數(shù)據(jù)完美無偏移地疊加到“天地圖”上。
水利站點位置的經(jīng)緯度可通過Web Service 調(diào)用,并顯示在“天地圖”上,通過單擊可查看各站點水雨情實時信息。
(2)雨情信息統(tǒng)計圖表設(shè)計
Android 手機端請求服務(wù)器端根據(jù)功能需求編寫的Web Service(例如Get24HourRain、GetEveryDayRain、GetEveryMonthRain)返回JSON 字符串,Android 端對接收到的JSON 字符串進行解析,可結(jié)合AChartEngine 圖表顯示柱狀圖。
筆者所設(shè)計的平臺采用基于Andriod、ArcGIS Runtime SDK for Android、Web Service、“天地圖”和數(shù)據(jù)庫技術(shù)相結(jié)合的方式,為用戶設(shè)計開發(fā)出穩(wěn)定、高效的水利行業(yè)應(yīng)用軟件,并且具有良好的體驗效果。平臺很好地解決了外出人員特別是管理者無法及時掌握汛情信息的問題,通過GPRS/WLAN/3G 等無線網(wǎng)絡(luò),可對各類汛情信息(包括雨情、水情、工情、臺風、云圖、天氣預(yù)報等相關(guān)信息)隨時隨地進行查詢、檢索,為管理者的日常管理提供了便捷,也為水文工作者實時接收信息和預(yù)警預(yù)報的情況并作出決策提供了保證。
[1]解建倉,馬增輝,張永進,王少波.水利移動服務(wù)平臺的設(shè)計與開發(fā)[J].水利發(fā)電學報,2008,27(4):146-147.
[2]梁立峰,張海強.基于Android 的防汛通平臺設(shè)計與應(yīng)用[J].水利科技,2012(1):21-24.
[3]Esri.ArcGIS for Android 開發(fā)文檔[EB/OL].[2013-09-05].http://developers.arcgis.com/en/android/.
[4]謝馨瑤,李沈鑫,毛炎,謝育武.基于Android 系統(tǒng)的餐飲推薦系統(tǒng)的開發(fā)[J].高科技產(chǎn)品研發(fā),2014(3):31-32.
[5]蔡奕彬,陳智威,楊沛釗,侯超鈞.基于Web Service 的Android 餐飲點菜系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機與現(xiàn)代化,2013(4):121-122.
[6]張雅楠,楊璐,鄭麗敏.基于Android 手機的遠程視頻監(jiān)控系統(tǒng)的設(shè)計與開發(fā)[J].計算機應(yīng)用,2013,33(S1):283-286.
[7]虞開森,駱小龍,余魁.基于iphone的防汛掌上通平臺設(shè)計與應(yīng)用[J].水利水電科技進展,2010,30(6):75-76.