趙軍,宮麗瑋,周圣川,3,胡振彪,王海銀,黃蓉
(1.青島市勘察測繪研究院,山東 青島 266032; 2.青島市西海岸基礎地理信息中心有限公司,山東 青島 266000;3.山東省海陸集成與應用工程研究中心,青島市海陸地理信息集成與應用重點實驗室,山東 青島 266032)
社會治理事件在業務流轉系統中,由于某些事件的性質、類型、歸屬等問題難以界定(這里稱之為復合型事件),往往涉及多個業務部門,在條例嚴格、流程精細、單向指派的業務流轉系統中往往難以判斷、下發、指派。實現復合型事件的高效管理,目前主要存在以下幾點不足:①社會治理事件信息往往與空間信息緊密相關,傳統業務系統無法較好地兼顧空間信息;②復合型事件往往附帶文字、圖片、視頻等多類型屬性信息,目前缺乏實現所有屬性統一集成調用查看的手段;③缺乏復合型事件的可視化編輯方式。
基于以上問題的分析,本文研究采用PostgreSQL空間數據庫+文件系統對事件數據進行存儲管理,利用ArcSDE空間數據引擎作為應用系統與數據庫服務器之間的接口,選用ArcGIS for JavaScript API實現社會治理事件的可視化管理和多媒體屬性編輯,開發掛圖作戰系統,輔助指揮中心以“所見即所得”的形式實現對復合型事件的“督戰”。
所謂掛圖作戰,即以地圖為載體,決策層所有的現場指揮操作以一張圖為平臺,重現“立體沙盤”作戰;這樣,相比傳統的業務系統,問題的所在地、類型、狀態等情況更加淺顯易懂,“督導通報”的效果更加顯著,有助于社會治理事件的科學高效解決,推動智慧城市建設。
空間數據庫是指地理信息系統在計算機物理存儲介質上存儲的與應用相關的地理空間數據的總和[1],主要采用關系型數據庫管理系統來管理空間數據,具有高可訪問性、空間數據類型復雜、實現屬性數據和空間數據聯合管理等優點。目前的空間數據庫主要是建立在關系型數據庫之上,通過空間數據引擎作為中間件(依托中間件屏蔽操作系統和數據庫平臺之間的差異),基于MVC模式,實現了系統功能模塊與后臺數據的分離,提高了系統的安全性和穩定性,降低了系統維護成本。
PostgreSQL是自由的對象-關系數據庫服務器,功能強大。相比Oracle數據庫,PostgreSQL完全開源,遵循BSD協議,具有較好的可擴展性。具有面向對象特性,包含類及繼承等機制。支持豐富的數據類型,允許自定義數據類型;同時,還具有強大的跨平臺性,是目前支持平臺最多的數據庫管理系統之一。
PostGIS作為PostgreSQL的空間擴展模塊,增強了空間數據庫的儲存管理能力,提供了空間對象、空間索引、空間操作函數等空間信息服務功能,使PostgreSQL實現了對復雜的空間類型、空間分析、投影變換等功能的支持,遵循OpenGIS的規范,實現了對ArcGIS空間數據從管理平臺到入庫的無損過度,在數據庫層面徹底實現了空間數據與屬性數據存儲的統一[2~4]。
從ArcGIS客戶端軟件到空間數據庫入庫管理,需要使用中間件-ArcSDE,ArcSDE是ArcGIS的空間數據引擎,是在關系數據庫管理系統(RDBMS)中存儲和管理多用戶空間數據庫的通路,通過該通路實現ArcGIS數據在PostgreSQL等多種數據庫平臺上管理地理信息。利用數據庫的強大數據查詢機制[5,6],ArcSDE實現了對地理空間數據的管理和在多用戶條件下的高效并發訪問。地理空間數據庫存儲原理如圖1所示。

圖1 地理空間數據庫存儲原理圖
對于圖片或者視頻,在數據庫中存儲方式主要分為兩種:①將多媒體數據直接以二進制文件形式存儲在數據庫中;②數據存儲在磁盤,數據庫字段中保存的多媒體數據路徑。由于復合型事件附帶的多媒體數據量龐大和對下面三個方面的考慮,針對多媒體屬性信息這一塊,本文選擇第二種方案。
①對數據庫的讀/寫的速度不如文件系統處理的速度。
②大并發訪問的情況下,保存二進制,大字段數據會加重數據庫負擔,拖慢數據庫;數據庫備份變得巨大,越來越耗時間。
③文件的訪問需要穿越應用層和數據庫層,存儲路徑的方式在多媒體數據調用時的效率優于存儲二進制的方式。
本文使用空間數據庫與文件系統相結合的方式,實現對復合型事件地理空間數據的高效管理。
論文基于WebGIS搭建B/S掛圖作戰系統,實現不同街道辦、不同問題類型的多源事件上傳、管理、可視化和編輯;要求事件信息的編輯不僅包括空間屬性的編輯,同時包括非空間文本屬性、多媒體屬性信息等全方位的數據編輯。技術路線主要包括客戶端、服務端、數據庫三個層面,如圖2所示。
客戶端系統整體架構采用HTML5、CSS、JavaScript進行開發。地圖可視化采用ArcGIS for JavaScript API進行二次開發,發布地圖瓦片服務,通過請求ArcGIS Server的rest服務實現地圖的操作;系統UI框架和其他相關技術,使用JQuery EasyUI進行開發。
客戶端與服務端的交互,基于Ajax引擎實現,采用XMLHTTP組件中的XMLHTTPrequest對象實現,客戶端通過Ajax引擎向服務端發送HTTP請求,返回JSON數據對客戶端進行顯示,其最大的優勢是實現異步請求,可以在無須等待情況下進行局部更新。
服務端使用Eclipse平臺,基于Java Servlet+JDBC,實現數據增刪查改等相關服務的開發;采用Tomcat部署相關服務,響應和處理HTTP請求。
數據庫層面使用ArcSDE+PostgreSQL構建空間數據庫,實現系統所需相關數據的管理[6~8]。

圖2 系統技術路線圖
系統的功能設計需要滿足指揮中心人員對于復合型事件的管理、查看和編輯等社會治理事件管理的相關功能,因此,需要具備以下特點和功能:
(1)分級登錄。系統需要具備分級登錄體系,非登錄用戶只具備基礎的地圖漫游功能;不同街道辦只能登錄控制本街道范圍內各類型事件問題,瀏覽編輯本街道范圍內事件。
(2)事件數據可視化。系統實現事件數據的地圖可視化,一鍵單擊可以同時查詢事件的基礎屬性信息和多媒體信息(圖片、視頻、文件)。
(3)事件數據編輯。系統可以實現事件信息的增刪改功能,支持在地圖上精確打點增加事件信息和附掛多媒體信息,支持事件信息的屬性編輯和事件完成狀態變更。
(4)事件信息統計。系統具備對區域范圍內各類事件問題的統計分析,輔助用戶了解事件分布特點和區域分布密度。
ArcGIS for JavaScript是Esri官方推出的WebGIS地圖功能開發包,其本身是基于JavaScript語言的可以調用ArcGIS Server Rest API接口的腳本,將調用到的地圖資源和地圖服務整合到網絡應用中[9,10]。
基于功能強大的Dojo JavaScript工具包,擁有強大的地理信息系統開發和定制能力,可以實現瀏覽器端地圖的顯示、瀏覽、查詢、編輯等多項功能。ArcGIS for JavaScript開源,不需要任何密鑰,具有良好的擴展性。
功能模塊是系統功能的執行單元,彼此之間相對獨立。合理的模塊劃分有助于系統的實現。本系統根據功能和不同應用場景劃分為4個功能模塊:用戶登錄、事件上傳與可視化、事件編輯和統計分析。
(1)用戶登錄
系統開發用戶登錄功能實現事件的用戶管理和事件控制。以街道辦轄區范圍作為事件上報和管理的臨界范圍。
技術實現如圖3所示,在ArcGIS Server中發布街道辦的要素類專題服務,通過Rest服務請求獲得各街道辦名稱和街道辦的GIS空間范圍值Geometry,最后以街道名稱作為key值,街道辦對應的范圍Geometry值作為value,構建JSON鍵值對。當選擇各街道辦時,由Geometry作為事件篩選條件,顯示當前街道的所屬事件。
系統登錄UI設計如圖4所示:

圖3 系統登錄控制流程圖

圖4 系統登錄效果圖
(2)事件上傳與可視化
事件數據庫表的表結構設計如表1所示。heatquestion、questioninfo、wczt、time、ssjd作為常規屬性存儲基礎文本信息;mediadirectory負責記錄事件的多媒體信息的文件夾路徑,為避免文件夾重名,文件夾命名格式采用Unix時間戳;photoname記錄圖片名稱,圖片之間以分號隔開,如“1.png;2.png;3.png;”,程序調用時轉化為數組;videoname記錄事件的視頻信息,以“mediadirectory/videoname”的方式構建視頻完整路徑。

事件信息數據庫表結構 表1
事件上傳與可視化,使用ArcGIS for JavaScript二次開發接口,將事件信息以ArcSDE數據源的方式發布WFS服務,使用安排WFS服務的playEdits方法,實現事件的上傳;使用ArcGIS API上傳事件的同時,將上傳的圖片、視頻等多媒體信息通過開發Java Servlet文件上傳接口上傳至服務器文件系統,前端調用時通過拼接URL地址讀取顯示在前端地圖。使用API的Featurelayer類可直接在地圖上實現事件專題的顯示,事件上傳與可視化流程如圖5所示。
系統效果圖如圖6所示,通過點擊添加問題按鈕,允許用戶只能在當前選擇街道的范圍內打點,在下拉列表中選擇事件問題類型,錄入事件的屬性信息,如整治狀態、問題描述、圖片、視頻等,點擊提交問題按鈕即可實現事件問題的添加。在地圖上點擊事件圖標,其所有的屬性信息即可一覽無余。

圖6 事件上傳可視化及屬性查看效果圖
(3)事件編輯
系統將事件信息的編輯分成兩部分,即基礎文本屬性編輯和多媒體信息編輯。對于基礎文本屬性編輯,如完成狀態等,直接在編輯狀態下使用WFS服務的applyEdits方法。對于多媒體信息,applyEdits方法只能更改字段信息,對于路徑指向的圖片、視頻源,則通過開發Java Servlet接口,更新文件系統中多媒體源文件,通過ArcSDE同步更新WFS服務,實現事件信息的編輯。流程圖如圖7所示。

圖7 事件編輯流程圖
編輯狀態下單獨開放多媒體編輯界面,如圖8所示,通過簡單地增加、刪除按鈕,可以快速實現原多媒體資源的增加、刪除和替換。

圖8 事件編輯效果圖
(4)統計分析
系統基于Echarts工具進行事件信息的統計分析,實現以統計圖的形式體現事件信息分布及統計情況。基于Rest服務實現事件信息的分街道、分類型統計。系統實現效果如圖9所示。

圖9 事件統計分析效果圖
系統基于WebGIS,通過ArcGIS for JavaScript二次開發,實現了社會治理復合型事件的上傳、編輯與可視化,實現了各街道范圍事件管理的權限控制。以掛圖作戰的形式呈現在指揮中心大屏,很好地輔助了社會治理指揮中心對于復合型事件的管理和解決督查,對城市社會治理工作的有效開展起到了積極的推動作用。不足之處,系統在局部UI設計上有待優化,對于復合型事件處理過程中的狀態監測也有待加強。