張延波,張琳,解兆延,徐文青,周廣旭
(山東省科學院自動化研究所 ,山東濟南250014)
城市窨井及其地下管網設備是城市生存與發展的生命線[1],目前,窨井及其管網設備的管理大多停留在紙質人工管理上,工作量大、效率低下。同時,窨井井蓋的丟失一直是令市政部門和相關企業非常頭疼的問題,不僅給人員車輛帶來安全隱患,而且井下的線纜和設備的丟失極易導致通訊、電力、供水、供氣中斷,給企業和居民生活造成巨大損失。
為適應城市規劃、管理的要求以及數字化城市建設,本文設計了基于MapX控件的城市窨井監控系統,使用戶可以方便地對整個城市的窨井及井下管網設備進行監控、管理,替代了原先較為落后的人工管理模式,能夠為市政管理部門和相關企業提供及時、準確的輔助分析與決策。
隨著計算機和測繪技術的飛速發展,地理信息系統(Geographic Information System,GIS)得到了廣泛應用[2]。GIS按照內容可分為兩類:應用型和工具型。應用型GIS是以某一專業、領域為主要內容,支持二次開發;而工具型GIS是基礎軟件,支持空間數據處理、圖形分析等基本功能。目前應用型GIS二次開發主要有以下3種實現方式:(1)獨立開發,不依賴于任何GIS工具,選用某種程序設計語言,在一定的操作系統下編程實現;(2)借助二次開發工具單純二次開發,例如利用MapInfo的MapBasic開發系統;(3)集成二次開發,利用專業的GIS工具軟件及其組件,實現GIS的基本功能。其中,利用組件技術進行開發是面向對象技術和分布式計算在軟件工程中應用的深化和融合,是目前GIS軟件開發和設計的先進技術。該技術既沿用了專業GIS產品的強大制圖功能,又能根據需要靈活實現各種管理功能。其開發周期短、成本低、高效快速,可以脫離大型商業GIS軟件平臺獨立運行,并且對開發者的GIS專業背景要求不高。
MapX是MapInfo公司向用戶提供的具有強大地圖分析功能的ActiveX控件產品[4],可以很方便地集成到可視化的開發環境中,支持將地圖功能添加到任何應用中,提供了一種高度可視化的方法,來顯示和分析基于位置的數據信息,并且支持使用Visual C++、Visual Basic、Delphi等編程語言,開發者可方便地設計實現地圖功能和特性。
MapX基于ActiveX技術,由一系列Object(對象)和Collection(對象集合)組成,而集合中包括對象,是多個對象的組合,每種對象和集合負責處理地圖某一方面的功能。Map是最基本的對象,每個Map由Layer(層)、Dataset(數據集)和Annotation(標注)這3個對象及對象集合來定義,其中Layer用于操作地圖圖層,Dataset用于訪問空間對象的屬性數據,Annotation用于在地圖上添加文本、符號等標注,如圖1所示。

圖1 MapX模型結構Fig.1 Model structure of MapX
數據是GIS系統中最基礎的部分,對整個系統的開發建設起到了至關重要的作用。空間數據結構是GIS的基石,GIS通過這些地理空間結構建立地理圖形的空間數據模型并定義各空間數據關系,從而實現空間數據和數據庫的結合[3]。
獲得空間圖形數據的方式主要有2種:(1)利用數字化儀器對地圖進行數字化,輸入相應的數據屬性描述信息。目前,大部分GIS軟件都提供了數字化儀的操作功能。(2)用掃描儀將地圖掃描成圖像文件,再進行數字化[4]。本文采用第二種方式來獲取圖形數據,以濟南市為例,把1:15 000的濟南市地圖進行掃描,保存成JPG格式圖片,在Mapinfo軟件中,進行圖像配準。首先選取6個基準點,輸入其經緯度坐標,完成圖像配準工作;其次矢量化該地圖,在Mapinfo中,輸入表的各個字段名稱、類型、寬度,然后將該表作為裝飾圖層加入到地圖之中。矢量化之后的各個圖層的圖形數據轉變成為GIS能夠支持的數據格式,作為監控系統中工作底圖數據來源。
設計開發窨井監控系統,首先要對窨井的屬性信息進行采集、過濾。窨井分布在城市的各個街道,井下環境不一,數量、種類繁多,測試手段也大不相同。目前,窨井監控數據的采集方法大概有如下2種途徑:(1)井下有線信號傳輸方式,該方式工程量大、施工復雜,若線路故障則導致通信中斷,穩定性差;(2)信號無線傳輸模式,每個監控點都安裝GSM模塊,利用GSM網絡進行數據傳輸,該方式自動化程度高,但是施工成本較高,普及推廣難度大。本文在現有基礎上進行了改進,充分利用無線自組網技術[5]、GPRS通用分組無線業務設計了無線網絡節點系統,系統硬件結構如圖2所示。
首先由網絡協調器啟動一個網絡的建立過程,設置自己的網絡地址以及拓撲結構等參數,在無線網絡搭建成功之后,路由器或終端節點通過網絡協調器加入到網絡中,并分配相應的網絡地址,各個終端節點之間可通過路由器相互通信,若干個無線網絡節點系統通過自組網形成無線傳輸網絡。終端節點與監控窨井一一對應,負責采集監測信息并將信息匯集到離其最近的路由器,在無線網絡節點系統中至少有一個節點和GPRS模塊進行連接,節點系統通過GPRS數據業務向監控中心發送監測數據。監控中心的計算機接收、處理上傳數據,將結果實時顯示在大屏幕上。

圖2 監控系統硬件結構Fig.2 Hardware structure of the monitoring system
數據庫設計的主要任務是依據數據模型完成空間數據結構和屬性數據結構的設計以及圖形與屬性信息之間的關聯[6]。監控系統中,每個被監控的窨井井蓋擁有一個唯一識別的ID號,檢測終端通過這個ID號與之動態綁定,而電子地圖中會有一個圖元和這個ID號配對,實現空間數據庫和屬性數據庫的邏輯連接。
(1)空間數據庫。MapX開發系統中的地圖是分層存放的,各層中的空間數據主要存放在數據文件*.map中,圖形中的每一個地物均有其對應的標識,系統根據這個標識號作為索引建立該地物的圖形文件。圖層分為背景圖層和專題圖層兩大部分,其中,背景圖層主要有道路層、建筑物層、水系層、公共設施層;專題圖層包含有通訊層、電力層、熱力層、污水層、消防層、路燈層、自來水等窨井圖層。
(2)屬性數據庫。屬性數據庫采用關系數據SQLSERVER2005來管理,以窨井的唯一識別碼為關鍵字作為圖形文件中該實物的標識碼ID號,實現圖形與屬性數據的一一對應關系。根據關系型數據庫管理系統的要求,對每一層的監控對象所對應的屬性數據結構進行定義,然后統一匯總、編碼,建立對應的變量字段。窨井的屬性定義見表1。

表1 窨井數據結構Table 1 Data structure of the manhole
城市窨井監控系統采用模塊化設計思想,由圖形的結構與層次關系確定各個模塊的功能。以MapX控件為基礎,集成到可視化的編程環境Visual C++中,實現了圖層、圖元控制,數據綁定等功能。系統界面設計簡潔,主界面截圖如圖3所示,主要功能有:
(1)GIS圖形操作管理功能。實現地圖放大、縮小、全圖、漫游等視圖顯示功能,提供全區域范圍內導航的鷹眼功能,用戶可以根據操作權限按照需要對一些圖層進行顯示、隱藏及關閉操作。
(2)綜合查詢與定位功能。實現雙向查詢功能,既可通過點擊對象(道路、建筑、窨井等)獲取屬性信息,亦可輸入屬性查詢條件定位對象。用戶查看對象(窨井或城市地物)時,可通過鼠標點擊捕捉后瀏覽其相關屬性,用戶查詢屬性信息時亦可立刻定位至該對象。
(3)量算功能。近似量算窨井與窨井之間、窨井和監控中心之間距離。
(4)監控對象圖元自由組態功能。用戶在監控背景圖層上自由選擇圖元符號,可增加、刪除、修改、移動窨井圖元,同時能靈活修改圖元的屬性配置信息、無線網絡采集系統中的通道號、端口號。
(5)實時數據監測與報警處理功能。用戶可設定采樣間隔時間,實時采集窨井井口狀態及井下環境信息并以列表、曲線的形式顯示。當系統檢測到井蓋異常開啟或者氣體濃度超標時,自動在報警信息欄中顯示警情,系統迅速定位報警點至地圖中央,并以聲、光報警形式提醒值班人員,同時發送報警短信。

圖3 系統界面Fig.3 System interface
在監控系統中,圖元的定位與閃爍是十分重要的技術。通過Visual C++創建一個應用項目后,將位于MapX的安裝路徑下的MapX.h和MapX.cpp兩個文件拷貝到應用項目所在的文件夾下,從Project菜單中選擇Add to Project->Files命令,打開Insert Files into Project對話框選項,選中開發項目程序文件夾下的MapX.cpp和MapX.h兩個文件加載到工程中[7]。通過Mapx對象GetFind()屬性函數可實現地圖當中的任何圖元對象的查詢定位。實現圖元閃爍的方法是利用Selection對象,結合Windows的定時器就能控制圖元閃爍,主要代碼如下:

監控中心初始化配置無線節點信息,為所有無線網絡節點分配地址并設置配置數據包,監控主機根據制定的通信協議,讀取無線網絡節點發送的數據,并對數據進行解析、識別。監測數據流程如圖4所示。
本文開發設計的城市窨井監控系統,充分利用了無線自組網技術,采用GPRS網絡數據傳輸,以組件式GIS控件MapX為技術支撐,實現了城市窨井的網絡化、圖形可視化監控。監測人員能結合電子地圖實時監控窨井位置信息與狀態數據,快速及時了解警情,避免了由于窨井井蓋被盜或損壞而出現的人員車輛安全隱患問題以及井下線纜和設備丟失的問題。目前,該系統還處于實驗室運行階段,如要將系統推廣應用,窨井檢測終端天線的材質選擇、具體的安裝方式是亟待解決的問題,也是我們下一步研發的重點。

圖4 通信流程Fig.4 Communication flow
[1]張珺.基于WebGIS的城市地下管網信息系統的應用研究[J].國土資源信息化,2006(6):30.
[2]朱海鵬.VC++環境下基于MapX的軟件開發[J].電腦知識與技術,2011,7(12):2846-2847.
[3]梁躍虹,齊耀斌.基于MapX橋梁數字化管養系統中電子地圖的開發[J].微計算機信息,2006,22(10):200-201.
[4]張成才,孫喜梅,黃建紅,等.基于MAPINFO電子地圖制作方法研究[J].水土保持研究,2002,9(4):145-146.
[5]孫慶輝,王曉理,池天河,等.一種基于無線通信技術的GIS集成系統[J].計算機應用研究,2006,(8):255-256.
[6]向懷坤,武文波,丁繼新.GIS支持下的城市地下管網信息系統研究[J].北京工業大學學報,1999,25(3):123-124.
[7]靳海亮,劉慧杰,苗寶亮.基于MapX控件的GIS應用軟件基本功能的二次開發[J].計算機與數字工程[J].2011(1):62- 63.