張延波,張琳,解兆延,徐文青,周廣旭
(山東省科學(xué)院自動(dòng)化研究所 ,山東濟(jì)南250014)
城市窨井及其地下管網(wǎng)設(shè)備是城市生存與發(fā)展的生命線[1],目前,窨井及其管網(wǎng)設(shè)備的管理大多停留在紙質(zhì)人工管理上,工作量大、效率低下。同時(shí),窨井井蓋的丟失一直是令市政部門和相關(guān)企業(yè)非常頭疼的問題,不僅給人員車輛帶來安全隱患,而且井下的線纜和設(shè)備的丟失極易導(dǎo)致通訊、電力、供水、供氣中斷,給企業(yè)和居民生活造成巨大損失。
為適應(yīng)城市規(guī)劃、管理的要求以及數(shù)字化城市建設(shè),本文設(shè)計(jì)了基于MapX控件的城市窨井監(jiān)控系統(tǒng),使用戶可以方便地對(duì)整個(gè)城市的窨井及井下管網(wǎng)設(shè)備進(jìn)行監(jiān)控、管理,替代了原先較為落后的人工管理模式,能夠?yàn)槭姓芾聿块T和相關(guān)企業(yè)提供及時(shí)、準(zhǔn)確的輔助分析與決策。
隨著計(jì)算機(jī)和測(cè)繪技術(shù)的飛速發(fā)展,地理信息系統(tǒng)(Geographic Information System,GIS)得到了廣泛應(yīng)用[2]。GIS按照內(nèi)容可分為兩類:應(yīng)用型和工具型。應(yīng)用型GIS是以某一專業(yè)、領(lǐng)域?yàn)橹饕獌?nèi)容,支持二次開發(fā);而工具型GIS是基礎(chǔ)軟件,支持空間數(shù)據(jù)處理、圖形分析等基本功能。目前應(yīng)用型GIS二次開發(fā)主要有以下3種實(shí)現(xiàn)方式:(1)獨(dú)立開發(fā),不依賴于任何GIS工具,選用某種程序設(shè)計(jì)語言,在一定的操作系統(tǒng)下編程實(shí)現(xiàn);(2)借助二次開發(fā)工具單純二次開發(fā),例如利用MapInfo的MapBasic開發(fā)系統(tǒng);(3)集成二次開發(fā),利用專業(yè)的GIS工具軟件及其組件,實(shí)現(xiàn)GIS的基本功能。其中,利用組件技術(shù)進(jìn)行開發(fā)是面向?qū)ο蠹夹g(shù)和分布式計(jì)算在軟件工程中應(yīng)用的深化和融合,是目前GIS軟件開發(fā)和設(shè)計(jì)的先進(jìn)技術(shù)。該技術(shù)既沿用了專業(yè)GIS產(chǎn)品的強(qiáng)大制圖功能,又能根據(jù)需要靈活實(shí)現(xiàn)各種管理功能。其開發(fā)周期短、成本低、高效快速,可以脫離大型商業(yè)GIS軟件平臺(tái)獨(dú)立運(yùn)行,并且對(duì)開發(fā)者的GIS專業(yè)背景要求不高。
MapX是MapInfo公司向用戶提供的具有強(qiáng)大地圖分析功能的ActiveX控件產(chǎn)品[4],可以很方便地集成到可視化的開發(fā)環(huán)境中,支持將地圖功能添加到任何應(yīng)用中,提供了一種高度可視化的方法,來顯示和分析基于位置的數(shù)據(jù)信息,并且支持使用Visual C++、Visual Basic、Delphi等編程語言,開發(fā)者可方便地設(shè)計(jì)實(shí)現(xiàn)地圖功能和特性。
MapX基于ActiveX技術(shù),由一系列Object(對(duì)象)和Collection(對(duì)象集合)組成,而集合中包括對(duì)象,是多個(gè)對(duì)象的組合,每種對(duì)象和集合負(fù)責(zé)處理地圖某一方面的功能。Map是最基本的對(duì)象,每個(gè)Map由Layer(層)、Dataset(數(shù)據(jù)集)和Annotation(標(biāo)注)這3個(gè)對(duì)象及對(duì)象集合來定義,其中Layer用于操作地圖圖層,Dataset用于訪問空間對(duì)象的屬性數(shù)據(jù),Annotation用于在地圖上添加文本、符號(hào)等標(biāo)注,如圖1所示。
圖1 MapX模型結(jié)構(gòu)Fig.1 Model structure of MapX
數(shù)據(jù)是GIS系統(tǒng)中最基礎(chǔ)的部分,對(duì)整個(gè)系統(tǒng)的開發(fā)建設(shè)起到了至關(guān)重要的作用。空間數(shù)據(jù)結(jié)構(gòu)是GIS的基石,GIS通過這些地理空間結(jié)構(gòu)建立地理圖形的空間數(shù)據(jù)模型并定義各空間數(shù)據(jù)關(guān)系,從而實(shí)現(xiàn)空間數(shù)據(jù)和數(shù)據(jù)庫的結(jié)合[3]。
獲得空間圖形數(shù)據(jù)的方式主要有2種:(1)利用數(shù)字化儀器對(duì)地圖進(jìn)行數(shù)字化,輸入相應(yīng)的數(shù)據(jù)屬性描述信息。目前,大部分GIS軟件都提供了數(shù)字化儀的操作功能。(2)用掃描儀將地圖掃描成圖像文件,再進(jìn)行數(shù)字化[4]。本文采用第二種方式來獲取圖形數(shù)據(jù),以濟(jì)南市為例,把1:15 000的濟(jì)南市地圖進(jìn)行掃描,保存成JPG格式圖片,在Mapinfo軟件中,進(jìn)行圖像配準(zhǔn)。首先選取6個(gè)基準(zhǔn)點(diǎn),輸入其經(jīng)緯度坐標(biāo),完成圖像配準(zhǔn)工作;其次矢量化該地圖,在Mapinfo中,輸入表的各個(gè)字段名稱、類型、寬度,然后將該表作為裝飾圖層加入到地圖之中。矢量化之后的各個(gè)圖層的圖形數(shù)據(jù)轉(zhuǎn)變成為GIS能夠支持的數(shù)據(jù)格式,作為監(jiān)控系統(tǒng)中工作底圖數(shù)據(jù)來源。
設(shè)計(jì)開發(fā)窨井監(jiān)控系統(tǒng),首先要對(duì)窨井的屬性信息進(jìn)行采集、過濾。窨井分布在城市的各個(gè)街道,井下環(huán)境不一,數(shù)量、種類繁多,測(cè)試手段也大不相同。目前,窨井監(jiān)控?cái)?shù)據(jù)的采集方法大概有如下2種途徑:(1)井下有線信號(hào)傳輸方式,該方式工程量大、施工復(fù)雜,若線路故障則導(dǎo)致通信中斷,穩(wěn)定性差;(2)信號(hào)無線傳輸模式,每個(gè)監(jiān)控點(diǎn)都安裝GSM模塊,利用GSM網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)傳輸,該方式自動(dòng)化程度高,但是施工成本較高,普及推廣難度大。本文在現(xiàn)有基礎(chǔ)上進(jìn)行了改進(jìn),充分利用無線自組網(wǎng)技術(shù)[5]、GPRS通用分組無線業(yè)務(wù)設(shè)計(jì)了無線網(wǎng)絡(luò)節(jié)點(diǎn)系統(tǒng),系統(tǒng)硬件結(jié)構(gòu)如圖2所示。
首先由網(wǎng)絡(luò)協(xié)調(diào)器啟動(dòng)一個(gè)網(wǎng)絡(luò)的建立過程,設(shè)置自己的網(wǎng)絡(luò)地址以及拓?fù)浣Y(jié)構(gòu)等參數(shù),在無線網(wǎng)絡(luò)搭建成功之后,路由器或終端節(jié)點(diǎn)通過網(wǎng)絡(luò)協(xié)調(diào)器加入到網(wǎng)絡(luò)中,并分配相應(yīng)的網(wǎng)絡(luò)地址,各個(gè)終端節(jié)點(diǎn)之間可通過路由器相互通信,若干個(gè)無線網(wǎng)絡(luò)節(jié)點(diǎn)系統(tǒng)通過自組網(wǎng)形成無線傳輸網(wǎng)絡(luò)。終端節(jié)點(diǎn)與監(jiān)控窨井一一對(duì)應(yīng),負(fù)責(zé)采集監(jiān)測(cè)信息并將信息匯集到離其最近的路由器,在無線網(wǎng)絡(luò)節(jié)點(diǎn)系統(tǒng)中至少有一個(gè)節(jié)點(diǎn)和GPRS模塊進(jìn)行連接,節(jié)點(diǎn)系統(tǒng)通過GPRS數(shù)據(jù)業(yè)務(wù)向監(jiān)控中心發(fā)送監(jiān)測(cè)數(shù)據(jù)。監(jiān)控中心的計(jì)算機(jī)接收、處理上傳數(shù)據(jù),將結(jié)果實(shí)時(shí)顯示在大屏幕上。
圖2 監(jiān)控系統(tǒng)硬件結(jié)構(gòu)Fig.2 Hardware structure of the monitoring system
數(shù)據(jù)庫設(shè)計(jì)的主要任務(wù)是依據(jù)數(shù)據(jù)模型完成空間數(shù)據(jù)結(jié)構(gòu)和屬性數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)以及圖形與屬性信息之間的關(guān)聯(lián)[6]。監(jiān)控系統(tǒng)中,每個(gè)被監(jiān)控的窨井井蓋擁有一個(gè)唯一識(shí)別的ID號(hào),檢測(cè)終端通過這個(gè)ID號(hào)與之動(dòng)態(tài)綁定,而電子地圖中會(huì)有一個(gè)圖元和這個(gè)ID號(hào)配對(duì),實(shí)現(xiàn)空間數(shù)據(jù)庫和屬性數(shù)據(jù)庫的邏輯連接。
(1)空間數(shù)據(jù)庫。MapX開發(fā)系統(tǒng)中的地圖是分層存放的,各層中的空間數(shù)據(jù)主要存放在數(shù)據(jù)文件*.map中,圖形中的每一個(gè)地物均有其對(duì)應(yīng)的標(biāo)識(shí),系統(tǒng)根據(jù)這個(gè)標(biāo)識(shí)號(hào)作為索引建立該地物的圖形文件。圖層分為背景圖層和專題圖層兩大部分,其中,背景圖層主要有道路層、建筑物層、水系層、公共設(shè)施層;專題圖層包含有通訊層、電力層、熱力層、污水層、消防層、路燈層、自來水等窨井圖層。
(2)屬性數(shù)據(jù)庫。屬性數(shù)據(jù)庫采用關(guān)系數(shù)據(jù)SQLSERVER2005來管理,以窨井的唯一識(shí)別碼為關(guān)鍵字作為圖形文件中該實(shí)物的標(biāo)識(shí)碼ID號(hào),實(shí)現(xiàn)圖形與屬性數(shù)據(jù)的一一對(duì)應(yīng)關(guān)系。根據(jù)關(guān)系型數(shù)據(jù)庫管理系統(tǒng)的要求,對(duì)每一層的監(jiān)控對(duì)象所對(duì)應(yīng)的屬性數(shù)據(jù)結(jié)構(gòu)進(jìn)行定義,然后統(tǒng)一匯總、編碼,建立對(duì)應(yīng)的變量字段。窨井的屬性定義見表1。
表1 窨井?dāng)?shù)據(jù)結(jié)構(gòu)Table 1 Data structure of the manhole
城市窨井監(jiān)控系統(tǒng)采用模塊化設(shè)計(jì)思想,由圖形的結(jié)構(gòu)與層次關(guān)系確定各個(gè)模塊的功能。以MapX控件為基礎(chǔ),集成到可視化的編程環(huán)境Visual C++中,實(shí)現(xiàn)了圖層、圖元控制,數(shù)據(jù)綁定等功能。系統(tǒng)界面設(shè)計(jì)簡(jiǎn)潔,主界面截圖如圖3所示,主要功能有:
(1)GIS圖形操作管理功能。實(shí)現(xiàn)地圖放大、縮小、全圖、漫游等視圖顯示功能,提供全區(qū)域范圍內(nèi)導(dǎo)航的鷹眼功能,用戶可以根據(jù)操作權(quán)限按照需要對(duì)一些圖層進(jìn)行顯示、隱藏及關(guān)閉操作。
(2)綜合查詢與定位功能。實(shí)現(xiàn)雙向查詢功能,既可通過點(diǎn)擊對(duì)象(道路、建筑、窨井等)獲取屬性信息,亦可輸入屬性查詢條件定位對(duì)象。用戶查看對(duì)象(窨井或城市地物)時(shí),可通過鼠標(biāo)點(diǎn)擊捕捉后瀏覽其相關(guān)屬性,用戶查詢屬性信息時(shí)亦可立刻定位至該對(duì)象。
(3)量算功能。近似量算窨井與窨井之間、窨井和監(jiān)控中心之間距離。
(4)監(jiān)控對(duì)象圖元自由組態(tài)功能。用戶在監(jiān)控背景圖層上自由選擇圖元符號(hào),可增加、刪除、修改、移動(dòng)窨井圖元,同時(shí)能靈活修改圖元的屬性配置信息、無線網(wǎng)絡(luò)采集系統(tǒng)中的通道號(hào)、端口號(hào)。
(5)實(shí)時(shí)數(shù)據(jù)監(jiān)測(cè)與報(bào)警處理功能。用戶可設(shè)定采樣間隔時(shí)間,實(shí)時(shí)采集窨井井口狀態(tài)及井下環(huán)境信息并以列表、曲線的形式顯示。當(dāng)系統(tǒng)檢測(cè)到井蓋異常開啟或者氣體濃度超標(biāo)時(shí),自動(dòng)在報(bào)警信息欄中顯示警情,系統(tǒng)迅速定位報(bào)警點(diǎn)至地圖中央,并以聲、光報(bào)警形式提醒值班人員,同時(shí)發(fā)送報(bào)警短信。
圖3 系統(tǒng)界面Fig.3 System interface
在監(jiān)控系統(tǒng)中,圖元的定位與閃爍是十分重要的技術(shù)。通過Visual C++創(chuàng)建一個(gè)應(yīng)用項(xiàng)目后,將位于MapX的安裝路徑下的MapX.h和MapX.cpp兩個(gè)文件拷貝到應(yīng)用項(xiàng)目所在的文件夾下,從Project菜單中選擇Add to Project->Files命令,打開Insert Files into Project對(duì)話框選項(xiàng),選中開發(fā)項(xiàng)目程序文件夾下的MapX.cpp和MapX.h兩個(gè)文件加載到工程中[7]。通過Mapx對(duì)象GetFind()屬性函數(shù)可實(shí)現(xiàn)地圖當(dāng)中的任何圖元對(duì)象的查詢定位。實(shí)現(xiàn)圖元閃爍的方法是利用Selection對(duì)象,結(jié)合Windows的定時(shí)器就能控制圖元閃爍,主要代碼如下:
監(jiān)控中心初始化配置無線節(jié)點(diǎn)信息,為所有無線網(wǎng)絡(luò)節(jié)點(diǎn)分配地址并設(shè)置配置數(shù)據(jù)包,監(jiān)控主機(jī)根據(jù)制定的通信協(xié)議,讀取無線網(wǎng)絡(luò)節(jié)點(diǎn)發(fā)送的數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行解析、識(shí)別。監(jiān)測(cè)數(shù)據(jù)流程如圖4所示。
本文開發(fā)設(shè)計(jì)的城市窨井監(jiān)控系統(tǒng),充分利用了無線自組網(wǎng)技術(shù),采用GPRS網(wǎng)絡(luò)數(shù)據(jù)傳輸,以組件式GIS控件MapX為技術(shù)支撐,實(shí)現(xiàn)了城市窨井的網(wǎng)絡(luò)化、圖形可視化監(jiān)控。監(jiān)測(cè)人員能結(jié)合電子地圖實(shí)時(shí)監(jiān)控窨井位置信息與狀態(tài)數(shù)據(jù),快速及時(shí)了解警情,避免了由于窨井井蓋被盜或損壞而出現(xiàn)的人員車輛安全隱患問題以及井下線纜和設(shè)備丟失的問題。目前,該系統(tǒng)還處于實(shí)驗(yàn)室運(yùn)行階段,如要將系統(tǒng)推廣應(yīng)用,窨井檢測(cè)終端天線的材質(zhì)選擇、具體的安裝方式是亟待解決的問題,也是我們下一步研發(fā)的重點(diǎn)。
圖4 通信流程Fig.4 Communication flow
[1]張珺.基于WebGIS的城市地下管網(wǎng)信息系統(tǒng)的應(yīng)用研究[J].國土資源信息化,2006(6):30.
[2]朱海鵬.VC++環(huán)境下基于MapX的軟件開發(fā)[J].電腦知識(shí)與技術(shù),2011,7(12):2846-2847.
[3]梁躍虹,齊耀斌.基于MapX橋梁數(shù)字化管養(yǎng)系統(tǒng)中電子地圖的開發(fā)[J].微計(jì)算機(jī)信息,2006,22(10):200-201.
[4]張成才,孫喜梅,黃建紅,等.基于MAPINFO電子地圖制作方法研究[J].水土保持研究,2002,9(4):145-146.
[5]孫慶輝,王曉理,池天河,等.一種基于無線通信技術(shù)的GIS集成系統(tǒng)[J].計(jì)算機(jī)應(yīng)用研究,2006,(8):255-256.
[6]向懷坤,武文波,丁繼新.GIS支持下的城市地下管網(wǎng)信息系統(tǒng)研究[J].北京工業(yè)大學(xué)學(xué)報(bào),1999,25(3):123-124.
[7]靳海亮,劉慧杰,苗寶亮.基于MapX控件的GIS應(yīng)用軟件基本功能的二次開發(fā)[J].計(jì)算機(jī)與數(shù)字工程[J].2011(1):62- 63.