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