摘? 要: 分析了GIS和MapX的基本技術(shù),提出了GIS信息顯示系統(tǒng)" title="顯示系統(tǒng)">顯示系統(tǒng)中地圖對(duì)象動(dòng)態(tài)添加、刪除以及地圖整體顯示效果適時(shí)變化的實(shí)現(xiàn)方法,。結(jié)合基于MapX的電力網(wǎng)絡(luò)配置" title="網(wǎng)絡(luò)配置">網(wǎng)絡(luò)配置顯示系統(tǒng)來說明這些技術(shù),。
關(guān)鍵詞: GIS? MapX? 動(dòng)態(tài)操作? 添加? 刪除
?
地理信息系統(tǒng)GIS(Geographic Information System)是收集,、管理,、查詢,、分析,、操作以及表現(xiàn)與地理相關(guān)的數(shù)據(jù)信息的計(jì)算機(jī)信息系統(tǒng),能夠?yàn)榉治?、決策提供重要的支持平臺(tái)。近年來,GIS廣泛應(yīng)用于基礎(chǔ)設(shè)施(道路,、電力等)的規(guī)劃,、自然資源的開發(fā)和利用、城市的發(fā)展規(guī)劃,、人口遷移與安置以及交通工具的定位導(dǎo)航和定位等復(fù)雜的區(qū)域開發(fā),并取得了良好的效益,。
隨著GIS的迅猛發(fā)展,GIS越來越多地應(yīng)用于信息顯示系統(tǒng)" title="信息顯示系統(tǒng)">信息顯示系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn),在信息顯示系統(tǒng)中動(dòng)態(tài)信息交互顯示是一個(gè)重要內(nèi)容。例如在區(qū)域電力網(wǎng)絡(luò)的管理方面,一個(gè)單獨(dú)的變電站可以滿足一定區(qū)域的供電需求,。某個(gè)地區(qū)是否需要增加一個(gè)變電站以滿足該區(qū)域電力供應(yīng)的需求,增加這個(gè)變電站后整個(gè)電力網(wǎng)絡(luò)的覆蓋范圍" title="覆蓋范圍">覆蓋范圍達(dá)到什么水平,都可以通過動(dòng)態(tài)GIS模擬實(shí)現(xiàn),達(dá)到輔助決策的效果,。
本文以區(qū)域電力設(shè)施配置顯示系統(tǒng)的設(shè)計(jì)為背景,說明如何實(shí)現(xiàn)電力設(shè)施的添加、刪除以及操作完成后適時(shí)顯示系統(tǒng)的整體態(tài)勢(shì)信息,。
1 MapX簡(jiǎn)介
MapX是MapInfo公司向用戶提供的具有強(qiáng)大地圖分析功能的32位OCX控件,。編程人員在開發(fā)過程中可以選用自己最熟悉的可視化開發(fā)環(huán)境,輕松地將地圖功能嵌入到應(yīng)用中,并且可以脫離MapInfo的軟件平臺(tái)運(yùn)行。同時(shí),MapX采用基于MapInfo Professional的相同地圖化技術(shù),可以實(shí)現(xiàn)MapInfo Professional具有的絕大部分地圖編輯和空間分析功能;MapX提供了各種工具,、屬性和方法,非常容易實(shí)現(xiàn)這些功能,因此近年來得到了迅猛發(fā)展,。
1.1 MapX的空間數(shù)據(jù)結(jié)構(gòu)
空間數(shù)據(jù)結(jié)構(gòu)是GIS的基石。GIS通過這種地理空間拓?fù)浣Y(jié)構(gòu)建立地理圖形的空間數(shù)據(jù)模型并定義各空間數(shù)據(jù)之間的關(guān)系,從而實(shí)現(xiàn)地理圖形和數(shù)據(jù)庫的結(jié)合,。如圖1所示,地理信息系統(tǒng)采用分層管理的方法管理地圖數(shù)據(jù),同一類型的空間對(duì)象存放在相同圖層中,。
?
1.2 MapX對(duì)象模型
MapX控件采用面向?qū)ο蟮姆绞教幚淼乩硇畔⑾到y(tǒng),對(duì)地理數(shù)據(jù)的操作實(shí)際上是對(duì)各類對(duì)象的操作。MapX的基本組成單元是Object(單個(gè)對(duì)象)和Collection(集合),。其中集合包括對(duì)象,是多個(gè)對(duì)象的組合,每種對(duì)象與集合負(fù)責(zé)處理地圖某一方面的功能,。MapX主要包括以下對(duì)象:
(1) Map
Map是MapX的頂層屬性,每個(gè)Map對(duì)象主要包括Datasets、Layers,、Annotations三個(gè)對(duì)象集合,。
Map對(duì)象包括一些主要的屬性,如Zoom用來設(shè)置放大級(jí)別(在地圖上顯示的大小),Rotation控制地圖的旋轉(zhuǎn)角度,CenterX和CenterY用于設(shè)置地圖顯示窗口的中心坐標(biāo)。
(2) Layers
在MapX中,地理信息按照?qǐng)D層的集合(Layers Collection)表示,每張單獨(dú)的地圖都被表示成單獨(dú)的圖層,所有的圖層存儲(chǔ)在Layers集合中。Layer對(duì)象由Features對(duì)象組成,Features對(duì)象又是由Feature對(duì)象組成,Feature對(duì)應(yīng)于地圖中的點(diǎn),、線,、面以及符號(hào)等地圖實(shí)體。
(3) GeoSet
GeoSet是在GeoManager中建立的,。GST文件,類似MapInfo中的WorkSpace概念,是圖層及其設(shè)置的集合,用于控制程序中顯示的地圖,。
(4) Datasets
在MapX中,屬性數(shù)據(jù)的操作主要通過數(shù)據(jù)綁定" title="綁定">綁定實(shí)現(xiàn),Datasets用于實(shí)現(xiàn)地圖與數(shù)據(jù)的綁定。數(shù)據(jù)綁定的數(shù)據(jù)源可以是DAO,、ADO,、ODBC數(shù)據(jù)源,、RDO,、MapInfo Table文件,還可以是一個(gè)規(guī)定了格式的文本文件。要綁定一個(gè)數(shù)據(jù)源,首先要指定所綁定的圖層,然后需要指定與圖層中地圖對(duì)象相匹配的關(guān)鍵字段,。
(5) Annotations
Annotations集合提供了操縱地圖中文字和符號(hào)的簡(jiǎn)單方法,。Annotations位于所有其它圖層的上方并且不與任何數(shù)據(jù)連接。
2 對(duì)象動(dòng)態(tài)添加
在區(qū)域電力網(wǎng)絡(luò)配置顯示系統(tǒng)中,一個(gè)單獨(dú)的變電站可以滿足一定區(qū)域的供電需求,。某個(gè)地區(qū)是否需要增加一個(gè)變電站,以滿足該區(qū)域供電需求,增加了這個(gè)變電站后整個(gè)電力網(wǎng)絡(luò)的覆蓋范圍達(dá)到什么水平,。所以在系統(tǒng)中添加了某一型號(hào)的變電站后,要求該變電站的作用范圍與整個(gè)區(qū)域現(xiàn)存的電力覆蓋范圍結(jié)合起來,形成并動(dòng)態(tài)顯示整個(gè)區(qū)域的電力網(wǎng)絡(luò)覆蓋范圍,以此判定該變電站建設(shè)的必要性以及該區(qū)域的電力網(wǎng)絡(luò)覆蓋范圍是否能夠滿足供電需求。
變電站的建設(shè)表現(xiàn)在GIS顯示系統(tǒng)中就是在地圖上增加一個(gè)具有某些屬性的地圖對(duì)象,。系統(tǒng)首先把各型號(hào)變電站性能參數(shù)存入數(shù)據(jù)庫中,用戶在系統(tǒng)界面上可以選擇需要修建的變電站型號(hào),系統(tǒng)連接數(shù)據(jù)庫,讀取相應(yīng)的屬性信息,然后采用鼠標(biāo)單擊的形式把所選對(duì)象安裝在鼠標(biāo)單擊的位置,并利用MapX計(jì)算顯示區(qū)域電力覆蓋范圍,。
該功能的實(shí)現(xiàn)采用重畫的方式。即系統(tǒng)首先刪除地圖上現(xiàn)存變電站的整體作用范圍,然后讀取數(shù)據(jù)庫中需要添加對(duì)象的基本屬性和地圖上現(xiàn)存變電站的屬性數(shù)據(jù),以這些數(shù)據(jù)為依據(jù)把地圖上現(xiàn)存的以及需要安裝的變電站的作用范圍進(jìn)行重畫,將各個(gè)對(duì)象的作用范圍進(jìn)行合并;合并后的整體作用范圍添加到對(duì)應(yīng)圖層并在對(duì)應(yīng)位置添加標(biāo)示即可,。最后在圖上顯示的就是區(qū)域電力網(wǎng)絡(luò)的整體覆蓋范圍,。
系統(tǒng)采用臨時(shí)圖層lyrobj存放安裝對(duì)象(變電站)以及對(duì)象的整體作用范圍,用Num存放臨時(shí)圖層上電站的數(shù)目(即區(qū)域現(xiàn)存變電站的數(shù)目,obj(i)表示第i個(gè)對(duì)象),對(duì)象pt(i)存放第i個(gè)電站的名稱、作用距離,、地理坐標(biāo)等屬性信息,。實(shí)現(xiàn)地圖對(duì)象添加的算法示意圖如圖2所示。
?
3 對(duì)象動(dòng)態(tài)刪除
一個(gè)單獨(dú)的變電站可以滿足一定區(qū)域的供電需求,對(duì)于實(shí)際的某些電站,如果遭遇自然災(zāi)害或者根據(jù)需要予以拆除,那么表現(xiàn)在地圖上就是該地圖對(duì)象(電站)會(huì)被刪除,刪除了該電站后,整個(gè)地區(qū)的電網(wǎng)覆蓋范圍將隨之發(fā)生變化,。電力管理部門可以此確定在發(fā)生意外的情況下,整個(gè)電力網(wǎng)絡(luò)是否仍可以滿足供電需求,。
整個(gè)實(shí)現(xiàn)過程采用臨時(shí)圖層lyrobj存放安裝對(duì)象(變電站)以及對(duì)象的整體作用范圍,用Num存放臨時(shí)圖層上電站的數(shù)目(obj(i)表示第i個(gè)對(duì)象),對(duì)象pt(i)存放第i個(gè)電站的名稱、作用距離,、地理坐標(biāo)等屬性信息,。
該功能的實(shí)現(xiàn):首先判斷選中的需要?jiǎng)h除的地圖對(duì)象(變電站)obj(k),并刪除數(shù)組pt()和obj()中對(duì)應(yīng)需要?jiǎng)h除的項(xiàng);然后刪除需要拆除的電站的標(biāo)示以及本地區(qū)所有電站的覆蓋范圍;隨后讀取數(shù)組pt()中對(duì)應(yīng)電站的屬性值,重畫除需要?jiǎng)h除的對(duì)象以外所有電站的覆蓋范圍,把各個(gè)對(duì)象的作用范圍進(jìn)行合并,并把合并后的整體作用范圍添加到對(duì)應(yīng)圖層,在對(duì)應(yīng)位置添加標(biāo)示,。這樣就會(huì)得到拆除一個(gè)電站后本地區(qū)電力供應(yīng)的覆蓋范圍,。實(shí)現(xiàn)地圖對(duì)象刪除的算法示意圖如圖3所示。
?
?
在實(shí)際的GIS信息顯示系統(tǒng)中,對(duì)象的動(dòng)態(tài)操作是一個(gè)重要方面,。利用本文介紹的這種方法開發(fā)的電力網(wǎng)絡(luò)配置顯示系統(tǒng)效率高,、實(shí)時(shí)性強(qiáng),為區(qū)域電力網(wǎng)絡(luò)的高效配置提供了方便快捷的保障。本系統(tǒng)雖然基于MapX實(shí)現(xiàn),但其實(shí)現(xiàn)地圖對(duì)象動(dòng)態(tài)交互操作的思路對(duì)WebGIS以及其他領(lǐng)域中地圖對(duì)象的動(dòng)態(tài)操作也有很強(qiáng)的借鑒意義。
?
參考文獻(xiàn)
1 齊超,何新華.車輛監(jiān)控地理信息系統(tǒng)中的地圖控制與實(shí)現(xiàn).計(jì)算機(jī)自動(dòng)測(cè)量與控制,2001;9(1)
2 牛德力. 組件式軟件及其在GIS開發(fā)中的應(yīng)用.測(cè)繪學(xué)院學(xué)報(bào),, 2000;17(04)
3 李玉國,戴國忠.基于GIS組件MapX的機(jī)載輔助導(dǎo)航系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)報(bào),,2001;13(05)
4 MapInfo Corporation? Mapinfo MapX Developer's Guide?Version 4.5. 2000