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