基于vb的供水管理信息系統(tǒng)研究與實現(xiàn)(終稿_第1頁
基于vb的供水管理信息系統(tǒng)研究與實現(xiàn)(終稿_第2頁
基于vb的供水管理信息系統(tǒng)研究與實現(xiàn)(終稿_第3頁
基于vb的供水管理信息系統(tǒng)研究與實現(xiàn)(終稿_第4頁
基于vb的供水管理信息系統(tǒng)研究與實現(xiàn)(終稿_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、中文摘要自來水管網(wǎng)屬于城市基礎設施,其管理是一項復雜而艱巨的工作,涉及面廣、數(shù)據(jù)量大、圖形信息與文字信息并存、設備附件增減更新快,人工管理工作難度大、效率低。為適應現(xiàn)代化城市的發(fā)展,城市基礎設施應具有良好的預測性、完善的決策性和快速響應性,特別是在城市基礎設施覆蓋面越來越大、地下管網(wǎng)分布密度越來越高、城市用水日益緊張的情況下,更需要一個信息容量上包容能力大、輸入存儲信息簡便、加工處理信息能力強、顯示信息速度快、信息交換便利的管理工具對管網(wǎng)信息進行科學高效的管理和利用。隨著GIS系統(tǒng)在我國各領域逐步發(fā)展應用,其強大的圖形和空間數(shù)據(jù)處理能力為我們開發(fā)自來水管網(wǎng)管理系統(tǒng)提供了思路。利用目前已有的管網(wǎng)

2、GIS系統(tǒng)數(shù)據(jù),并在建設和使用的過程中逐步完善是建立管網(wǎng)信息管理系統(tǒng)的首選途徑。本文選用組件式GIS技術,使用高級語言VB6.0和地理信息系統(tǒng)組件MapX5.0來開發(fā)城市自來水管網(wǎng)信息管理系統(tǒng)。文章闡述了該系統(tǒng)的功能、總體結構及系統(tǒng)實現(xiàn)。關鍵詞: 地理信息系統(tǒng);VB;MapX;城市自來水管網(wǎng)ABSTRACTWater-supply network belong to city basic facilities,the management of which is one term intricacy and collar work, because of its touch on surfac

3、e wide, data bulk large, graphical information and letter information consist, equipment appurtenance update swiftness,labor control acting hardness large, inefficiency up more or less. For conform to modern citys develop,city basic facilities respond possess favorable predictability, sophisticated

4、decision gender and fast response gender,especially above city basic facilities covering surface increasingly large, underground pipe network distribution density increasingly high, town water increasingly taut on occasions, still needs for one information capacity upper contain ability large, feed

5、canned data handiness, working over information ability strong, lay velocity swiftness, message switching convenient management tool pair transistor net information proceed science high duty supervise and utilize bare in to.As GIS system in our country wrought up application each region,thereof powe

6、rful figure and spatial data processing ability for us exploitation water-supply network supervisory system supply know clearly clue. It was erect pipe network information management systems first choice avenue for that both utilize for the moment available pipe network GIS system data,combine on th

7、e stocks suppose and utilized course suffer gradually soundness. Choosing Component-oriented GIS technology, we have developed the water-supply network GIS used with GIS Component MapX5.0 and Advanced Language VB6.0. In this paper, the function, the ensemble structure and achievement of the system i

8、s expounded.Key Words: Geographic Information System (GIS), Visual Basic, MapX, Water Supply Network 目 錄第一章 綜述11.1 引言11.1.1 地理信息系統(tǒng)簡介11.1.2 組件式地理信息系統(tǒng)11.2 開發(fā)工具的選擇21.2.1 Visual Basic簡介21.2.2 MapInfo簡介41.2.3 MapX簡介5第二章 需求分析72.1 系統(tǒng)功能描述72.1.1 圖層控制功能72.1.2 對象編輯功能82.1.3 查詢、搜索功能82.1.4 專題制圖功能82.2系統(tǒng)組成8第三章 總體設計

9、103.1 系統(tǒng)總體結構103.2 MapX主要組件概述103.2.1 MapX對象103.2.2 圖層113.2.3 GeoSet113.2.4 Annotations123.2.5 創(chuàng)建對象12第四章 系統(tǒng)實現(xiàn)134.1 數(shù)據(jù)庫的實現(xiàn)134.1.1 數(shù)據(jù)的關聯(lián)134.1.2 文件格式144.1.3 空間數(shù)據(jù)表示方法144.2 地圖圖層的劃分154.3 代碼生成174.3.1 界面設計174.3.2 圖像的基本操作184.3.3 管網(wǎng)信息增、刪、改功能的實現(xiàn)194.3.4 地理信息查詢和分析功能的實現(xiàn)204.3.5 專題制圖的實現(xiàn)224.4 非地理信息數(shù)據(jù)的處理234.4.1 設備屬性表23

10、4.4.2 管段數(shù)據(jù)表244.4.3 節(jié)點數(shù)據(jù)表254.4.4 消防栓數(shù)據(jù)庫表254.4.5 圖層數(shù)據(jù)集表264.4.6 專題圖字段表26第五章 結束語275.1 系統(tǒng)設計的特點和不足275.2 畢業(yè)設計的心得體會27致 謝29參考文獻30第一章 綜述1.1 引言自來水管網(wǎng)屬于城市基礎設施,其管理是一項復雜而艱巨的工作,涉及面廣、數(shù)據(jù)量大、圖形信息與文字信息并存、設備附件增減更新快,人工管理工作難度大、效率低。為適應現(xiàn)代化城市的發(fā)展,城市基礎設施應具有良好的預測性、完善的決策性和快速響應性,特別是在城市基礎設施覆蓋面越來越大、地下管網(wǎng)分布密度越來越高、城市用水日益緊張的情況下,更需要一個信息容

11、量上包容能力大、輸入存儲信息簡便、加工處理信息能力強、顯示信息速度快、信息交換便利的管理工具對管網(wǎng)信息進行科學高效的管理和利用。隨著GIS系統(tǒng)在我國各領域逐步發(fā)展應用,其強大的圖形和空間數(shù)據(jù)處理能力為我們開發(fā)自來水管網(wǎng)管理系統(tǒng)提供了思路。利用目前已有的管網(wǎng)GIS系統(tǒng)數(shù)據(jù),并在建設和使用的過程中逐步完善是建立管網(wǎng)信息管理系統(tǒng)的首選途徑。1.1.1 地理信息系統(tǒng)簡介 地理信息系統(tǒng)GIS(Geographic Information Systems)是在計算機軟硬件支持下,對顯示世界各類空間數(shù)據(jù)及描述這些空間數(shù)據(jù)特性的屬性進行采集、儲存、管理、運算、分析、顯示和描述的技術系統(tǒng)。它將地理對象的空間位置

12、的相關屬性有機結合,從空間和屬性兩個方面對現(xiàn)實對象進行查詢、檢索和分析,并將結果以形象、直觀的形式表達出來,輔助用戶決策。1.1.2 組件式地理信息系統(tǒng) 組件式地理信息系統(tǒng)已經(jīng)成為當今軟件技術的潮流之一。組件式GIS軟件平臺是國際上最近幾年發(fā)展起來的新型GIS軟件,具有二次開發(fā)方便、易于集成、無限擴展等特點。它帶來了GIS應用系統(tǒng)開發(fā)方式的變革,有利于提高二次開發(fā)的效率,增強GIS系統(tǒng)中各子系統(tǒng)之間的親和能力。組件式GIS的基本思想是把GIS的各大功能模塊劃分為若干控件,每個控件完成不同的功能。各個GIS控件之間,以及GIS控件與其他非GIS控件之間,可以方便地通過可視化的軟件開發(fā)工具集成起來

13、,形成最終的GIS應用??丶缤魇礁鳂拥姆e木,它們分別實現(xiàn)不同的功能(包括GIS功能和非GIS功能),根據(jù)實際需要把實現(xiàn)各種功能的“積木”搭建起來,就構成應用系統(tǒng)。1.2 開發(fā)工具的選擇基于組件式GIS的上述特點,本系統(tǒng)在GIS的幾種開發(fā)方式當中,選擇了基于GIS組件的集成二次開發(fā)方法,GIS組件選用MapX,高級語言選用VB。1.2.1 Visual Basic簡介Visual Basic是Microsoft公司推出的一種可視化的、面向對象和調(diào)用事件驅動方式的結構化高級程序設計工具,可用于開發(fā)Windows環(huán)境下的各類應用程序。它簡單易學、效率高,且功能強大。在Visual Basic環(huán)境

14、下,利用事件驅動的編程機制、新穎易用的可視化設計工具,使用Windows內(nèi)部的應用程序接口(API)函數(shù),以及動態(tài)鏈接庫(DLL)、動態(tài)數(shù)據(jù)交換(DDE)、對象的鏈接與嵌入(OLE)、開放式數(shù)據(jù)訪問(ODBC)等技術,可以高效、快速地開發(fā)出Windows環(huán)境下功能強大、圖形界面豐富的應用軟件系統(tǒng)??偟膩碚f,Visual Basic具有以下特點:(1)可視化編程 Visual Basic提供了可視化設計工具,把Windows界面設計的復雜性“封裝”起來,開發(fā)人員不必為界面設計而編寫大量程序代碼。只需要按設計要求的屏幕布局,用系統(tǒng)提供的工具,在屏幕上畫出各種“部件”,即圖形對象,并設置這些圖形對象

15、的屬性。Visual Basic自動產(chǎn)生界面設計代碼,程序設計人員只需要編寫實現(xiàn)程序功能的那部分代碼,從而可以大大提高程序設計的效率。(2)面向對象的程序設計4.0版以后的Visual Basic支持面向對象的程序設計,但它與一般的面向對象的程序設計語言(C+)不完全相同。在一般的面向對象程序設計語言中,對象由程序代碼和數(shù)據(jù)組成,是抽象的概念;而Visual Basic則是應用面向對象的程序設計方法(OOP),把程序和數(shù)據(jù)封裝起來作為一個對象,并為每個對象賦予應有的屬性,使對象成為實在的東西。在設計對象時,不必編寫建立和描述每個對象的程序代碼,而是用工具畫在界面上,Visual Basic自動

16、生成對象的程序代碼并封裝起來。每個對象以圖形方式顯示在界面上,都是可視的。(3)結構化程序設計語言Visual Basic是在BASIC語言的基礎上發(fā)展起來的,具有高級程序設計語言的語句結構,接近于自然語言和人類的邏輯思維方式。Visual Basic語句簡單易懂,其編輯器支持彩色代碼,可自動進行語法錯誤檢查,同時具有功能強大且使用靈活的調(diào)試器和編譯器。Visual Basic是解釋型語言,在輸入代碼的同時,解釋系統(tǒng)將高級語言分解翻譯成計算機可以識別的機器指令,并判斷每個語句的語法錯誤。在設計Visual Basic程序的過程中,隨時可以運行程序,而在整個程序設計好之后,可以編譯生成可執(zhí)行文件

17、(.EXE),脫離Visual Basic環(huán)境,直接在Windows環(huán)境下運行。 (4)事件驅動編程機制Visual Basic通過事件來執(zhí)行對象的操作。一個對象可能會產(chǎn)生多個事件,每個事件都可以通過一段程序來響應。例如,命令按鈕是一個對象,當用戶單擊該按鈕時,將產(chǎn)生一個“單擊“(CLICK)事件,而在產(chǎn)生該事件時將執(zhí)行一段程序,用來實現(xiàn)指定的操作。在用Visual Basic設計大型應用軟件時,不必建立具有明顯開始和結束的程序,而是編寫若干個微小的子程序,即過程。這些過程分別面向不同的對象,由用戶操作引發(fā)某個事件來驅動完成某種特定的功能,或者由事件驅動程序調(diào)用通用過程來執(zhí)行指定的操作,這樣可

18、以方便編程人員,提高效率。(5)訪問數(shù)據(jù)庫Visual Basic具有強大的數(shù)據(jù)庫管理功能,利用數(shù)據(jù)控件和數(shù)據(jù)庫管理窗口,可以直接建立或處理Microsoft Access格式的數(shù)據(jù)庫,并提供了強大的數(shù)據(jù)存儲和檢索功能。同時,Visual Basic還能直接編輯和訪問其他外部數(shù)據(jù)庫,如DBASE,F(xiàn)oxPro,Paradox等,這些數(shù)據(jù)庫格式都可以用Visual Basic編輯和處理。Visual Basic提供開放式數(shù)據(jù)連接,即ODBC功能,可通過直接訪問或建立連接的方式使用并操作后臺大型網(wǎng)絡數(shù)據(jù)庫,如SQL Server,Oracle等。在應用程序中,可以使用結構化查詢語言SQL數(shù)據(jù)標準,

19、直接訪問服務器上的數(shù)據(jù)庫,并提供了簡單的面向對象的庫操作指令和多用戶數(shù)據(jù)庫訪問的加鎖機制和網(wǎng)絡數(shù)據(jù)庫的SQL的編程技術,為單機上運行的數(shù)據(jù)庫提供了SQL網(wǎng)絡接口,以便在分布式環(huán)境中快速而有效地實現(xiàn)客戶/服務器(client/server)方案。1.2.2 MapInfo簡介MapInfo公司于1986年成立于美國特洛伊(Troy)市,成立以來,該公司一直致力于提供先進的數(shù)據(jù)可視化、信息地圖化技術,其軟件代表是桌面地圖信息系統(tǒng)軟件MapInfo。(1) MapInfo Professional是MapInfo公司主要的軟件產(chǎn)品,它支持多種本地或者遠程數(shù)據(jù)庫,較好地實現(xiàn)了數(shù)據(jù)可視化,生成各種專題地

20、圖。此外還能夠進行一些空間查詢和空間分析運算,如緩沖區(qū)等等,并通過動態(tài)圖層支持GPS數(shù)據(jù)。(2) MapBasic是為在MapInfo平臺上開發(fā)用戶定制程序的編程語言,它使用與BASIC語言一致的函數(shù)和語句,便于用戶掌握。通過MapBasic進行二次開發(fā),能夠擴展MapInfo功能,并與其他應用系統(tǒng)集成。 (3) MapInfo ProServer是應用于網(wǎng)絡環(huán)境下的地圖應用服務器,它使MapInfo Professional運行于服務器端,并能夠響應用戶的操作請求;而客戶端可以使用任何標準的Web瀏覽器。由于在服務器上可以運行多個MapInfo Professional實例,以滿足用戶的服務

21、請求,從而節(jié)省了投資。 (4) MapInfo MapX是MapInfo提供的OCX控件。 (5) MapInfo MapXtrem是基于InternetEthenet的地圖應用服務器,它可以用于幫助配置企業(yè)的Internet。 (6)SpatialWare是在關系數(shù)據(jù)庫環(huán)境下基于SQL進行空間查詢和分析的空間信息管理系統(tǒng),在SpatialWare中,支持簡單的空間對象,從而支持空間查詢,并能產(chǎn)生新的幾何對象。在實際應用中,一般使用SpatialWare作為數(shù)據(jù)服務器,而MapInfo Professional作為客戶端,可以提高系統(tǒng)開發(fā)效率。1.2.3 MapX簡介MapX是MapInfo

22、家族中的一枝新秀,是MapInfo二次開發(fā)中的又一強大工具。MapInfo MapX也是一個性能價格比好、功能強大的OCX控件,它可以很容易地在應用程序中加入強大的制圖功能。它可以把數(shù)據(jù)用地圖的形式顯示出來,更易于理解。地圖形式可以比簡單的圖表、圖形提供更多的信息,而且描述地圖比描述數(shù)據(jù)表更加簡單迅速。MapX是MapInfo公司的能向用戶提供強大地圖分析功能的ActiveX控件產(chǎn)品。由于它是一種基于Windows操作系統(tǒng)的標準控件,因而MapX能支持絕大多數(shù)標準的可視化開發(fā)環(huán)境如:Visual Basic、Visual C+、Delphi、PowerBuilder等面向對象語言,而且可以使用

23、Lotus Script將MapX嵌入到Lotus Notes中。利用MapX,用戶能夠簡單而快速的在自己的企業(yè)應用中嵌入地圖化功能,增強企業(yè)應用的空間分析能力,實現(xiàn)企業(yè)應用的增值。通過MapX,可以完全按照自己的意愿在應用程序中加入強大的制圖功能??梢园袋c、按專題渲染區(qū)域、按餅圖或直方圖等等來顯示數(shù)據(jù)。啟用MapX的分析功能,可以分組和組織數(shù)據(jù)、執(zhí)行搜索或在一個指定的半徑、矩形區(qū)域或指定的點的周圍選擇地圖圖元。1、MapX的優(yōu)點(1) 增強信息可視化能力以及數(shù)據(jù)的深層表現(xiàn)力很多企業(yè)最初建立的應用并不具有空間分析功能。但是隨著企業(yè)內(nèi)部信息量的增加及信息的多元化和復雜化,很多信息采用傳統(tǒng)的報表和

24、文檔方式已無法清晰、直觀、智能化地向用戶表現(xiàn)。此時,就需要利用MapX在企業(yè)應用中增加對信息的可視化顯示能力以及從數(shù)據(jù)中挖掘有用信息的能力:例如,利用MapX可以非常直觀地將企業(yè)自身在空間位置上的分布特性及客戶的住址、郵政編碼等信息,以地圖化的方式展示出來,并能將企業(yè)信息以統(tǒng)計圖表等可視化的方式顯示出來。(2)MapX的內(nèi)嵌功能由于采用的是控件技術,因此MapX可以無縫地嵌入到各個領域新的或已有應用系統(tǒng)中去,成為企業(yè)應用開發(fā)和運行環(huán)境的一部分,增強應用系統(tǒng)中數(shù)據(jù)的管理能力以及可視化功能。 (3)易于掌握,開發(fā)周期短,成本低用戶僅需要掌握一門通用語言如VB、VC、Delphi、PowerBuil

25、der等就可以使用MapX,而不需要去學習專業(yè)的開發(fā)語言,從而縮短應用開發(fā)周期,降低開發(fā)成本。2MapX與MapInfo Professional的區(qū)別使用MapX開發(fā),編程人員在開發(fā)過程中并不需要掌握其他專業(yè)編程語言,便可輕招地將地圖應用功能嵌入到企業(yè)應用中。并且應用可以脫離MapInfo的軟件平臺運行。相反,在構建上述的企業(yè)應用系統(tǒng),如果選用MapInfo Professional作為地圖化應用的平臺,則需要很多技巧來實現(xiàn)企業(yè)應用中的公用信息管理系統(tǒng)與地圖管理信息系統(tǒng)之間的信息交換與通訊。 MapBasic是一種類Basic的地圖應用開發(fā)語言,它具有自己的語法規(guī)則,同時它編譯生成的執(zhí)行程序

26、要依賴于MapInfo Professional平臺。對于想要快速建立以地圖空間分析為主要功能的企業(yè)應用用戶來說,選用MapBasic來開發(fā)是一種最快也最簡單的開發(fā)方式。因為MapBasic是一種集成化程度很高的開發(fā)語言,很多復雜的地圖分析功在MapBasic中只需要一條或是幾條語句便可以實現(xiàn)。對于有豐富編程經(jīng)驗的程序員來說,MapX是建立地圖應用的最理想工具,因為在利用MapX進行開發(fā)時,可以選用自己最熟悉的開發(fā)語言,充分發(fā)揮程序員的創(chuàng)造靈感。第二章 需求分析2.1 系統(tǒng)功能描述城市自來水管網(wǎng)信息管理系統(tǒng),主要應用于城市自來水管網(wǎng)中管段、閥門、泵站、用戶信息以及其他設備等信息的顯示和維護,為

27、調(diào)度、規(guī)劃、設計、管網(wǎng)維護提供輔助決策信息。該系統(tǒng)的功能如下:(1)能夠在整個自來水管網(wǎng)覆蓋區(qū)域,創(chuàng)建給水管網(wǎng)及其附屬設施的平面地圖,并能實現(xiàn)對地圖的無極放大、縮小和漫游;(2)能夠在地圖上完成對城市自來水管網(wǎng)中管段、閥門、泵站、用戶信息以及其他設備信息的顯示、維護和查詢。例如可根據(jù)管段的編號查詢管段屬性;(3)實現(xiàn)對城市自來水管網(wǎng)中管段、閥門、泵站、用戶等的定位、統(tǒng)計、分析功能。例如可按管徑統(tǒng)計管長,按區(qū)域統(tǒng)計用戶;(4)能夠在地圖上作出標注,如對出現(xiàn)事故的管段進行顏色渲染, 直觀地顯示其地理分布,為爆管搶修提供輔助決策。2.1.1 圖層控制功能地理信息系統(tǒng)的數(shù)據(jù)管理是以圖層為單位進行的,每

28、個圖層在圖上表現(xiàn)為一層,而屬性數(shù)據(jù)表現(xiàn)為一個表。每個表(圖層)是以文件的形式存放的。對圖層的控制是地理信息系統(tǒng)處理地圖的基本功能。圖層控制模塊要實現(xiàn)以下功能:(1)創(chuàng)建圖層(2)添加圖層(3)刪除圖層(4)更改圖層順序(5)放大或縮小顯示地圖2.1.2 對象編輯功能地圖符號是在地圖上用以表示各種制圖對象的圖形記號,或者還包括與之配合使用的注記。使用地圖符號不僅能反映制圖對象的個體存在、類別及其數(shù)量和質量特征,而且通過它們的聯(lián)系和組合,還能反映出制圖對象的空間分布和結構以及動態(tài)變化。故地理信息系統(tǒng)對地圖符號的編輯功能也很重要。根據(jù)約定原理,可將地圖符號分為點狀符號、線狀符號和面狀符號。在MapX

29、中地圖符號抽象為點對象(Point)、直線對象(Line)、折線對象(PolyLine)、區(qū)域對象(Region)等。對象編輯模塊功能主要是在圖層上添加點、直線、折線、區(qū)域等MapX對象。2.1.3 查詢、搜索功能信息的查詢搜索是實施現(xiàn)代化管理、提高科學決策水平的重要手段。地理信息系統(tǒng)是圖形、數(shù)據(jù)與應用程序的結合。GIS中查詢搜索應該是雙向的,即“已知文本查詢空間對象,根據(jù)空間對象查詢文本”。空間地理對象在GIS中描述為圖元,故圖元搜索模塊主要通過索引字段定位地圖中的圖元。2.1.4 專題制圖功能專題制圖是強大的分析以及可視化數(shù)據(jù)的方法。以圖形來表示數(shù)據(jù),使用戶可以在地圖上看到數(shù)據(jù)。使用專題渲

30、染在地圖上顯示數(shù)據(jù)時,在數(shù)據(jù)列表中幾乎無法顯示的樣式和趨勢可以清晰地展現(xiàn)在用戶眼前,為科學管理和決策提供強有力的支持。專題制圖模塊功能是根據(jù)已有的數(shù)據(jù)集和圖層,制作符合要求的專題地圖。2.2系統(tǒng)組成城市電子地圖系統(tǒng),供水管網(wǎng)圖(庫)系統(tǒng),管段閥門數(shù)據(jù)庫系統(tǒng)。三個系統(tǒng)中的元素通過空間關系聯(lián)系到一起。在相對獨立的兩個數(shù)據(jù)庫中分別存儲幾何數(shù)據(jù)和屬性數(shù)據(jù)的系統(tǒng)稱為混合自來水管網(wǎng)信息管理系統(tǒng)用戶界面管理幾何數(shù)據(jù)商業(yè)性DBMS幾何數(shù)據(jù)庫坐標文件拓撲文件屬性表格系統(tǒng)。數(shù)據(jù)庫之間通過唯一的標識符進行關聯(lián)。混合系統(tǒng)通常采用商業(yè)關系性數(shù)據(jù)庫來存儲屬性數(shù)據(jù),專用文件系統(tǒng)來存儲幾何數(shù)據(jù)。(如圖2.1)圖2.1 混合數(shù)

31、據(jù)庫模型第三章 總體設計3.1 系統(tǒng)總體結構系統(tǒng)結構采用模塊結構,系統(tǒng)的總體結構由圖形創(chuàng)建模塊、圖形顯示模塊、信息維護模塊、信息查詢模塊、統(tǒng)計模塊等5個子模塊構成(如圖3.1)。圖形創(chuàng)建模塊圖形顯示模塊信息維護模塊信息查詢模塊統(tǒng)計模塊自來水管網(wǎng)信息管理系統(tǒng)圖3.1 系統(tǒng)結構3.2 MapX主要組件概述3.2.1 MapX對象 在MapX 對象體系中,Map對象存在于最頂端。每個MapX對象、屬性、方法都衍生于Map對象。每個在Map對象之下的屬性和方法都會對生成整個Map對象有所影響。主要是由DataSet、Layers和Annotations對象定義每個Map對象。表3.1 由數(shù)值表示的Ma

32、p對象屬性屬性描述代碼示例Zoom設置在地圖中顯示的英里(默認的距離)數(shù)Map1.Zoom = 500Rotation對地圖旋轉指定的度數(shù)Map1.Rotation = 179CenterX設置x和y坐標,它們可能代表經(jīng)緯度。這是由地圖投影來決定的Map1.CenterX = -79.459CenterYMap1.CenterY = 44.6753表3.1顯示了一些由數(shù)值表示的Map對象屬性,可以在設計時改變這些屬性,也可以在運行時用以下代碼示例來更改: 3.2.2 圖層 每一幅單獨的地圖是一個圖層,MapX把地圖存儲為圖層的集合。在設計時通過MapX屬性對話框或是在運行時通過編程可以對圖層進

33、行改變。新建圖層、刪除圖層以及更改圖層的可見性和樣式都是一些能在圖層上完成的操作。 圖層集合Layers是由0到n個圖層對象組成的。圖層對象是由特性集合(Feature)組成的,且每一個特性都有其自己的屬性和樣式。特性集合由特征對象組成,對應地圖中的圖元,例如點、線和區(qū)域??梢詣?chuàng)建獨立的特征對象,也可以取得特征對象的集合。3.2.3 GeoSetGeoSet是地圖圖層及其設置的集合,可以在設計時指定GeoSet。在運行時指定要加載的其他GeoSet、給地圖對象添加圖層,或是操作圖層的外觀等操作都可同過屬性頁來實現(xiàn),或者可以通過與MapX一起裝載的MapX GeoSet Manager 圖3.2

34、 GeoSet Manager程序程序來實現(xiàn)(如圖3.2)。利用MapX作為數(shù)據(jù)綁定或創(chuàng)建專題地圖時,可以用GeoDictionary來匹配數(shù)據(jù)源于地圖圖層。GeoDictionary是一個保存了關于哪個地圖圖層可以匹配、哪個字段可以用作匹配字段的信息文件。如果想運用自動匹配/自動綁定,則必須在GeoDictionary中注冊文件。3.2.4 AnnotationsAnnotations集合是把文本和符號放在地圖上的簡單方法。注釋放在所有其它圖層的最頂端,并且不和任何數(shù)據(jù)鏈接。3.2.5 創(chuàng)建對象在MapX對象模型中,可以用表3.2中的對象類來創(chuàng)建獨立對象。表3.2 MapX對象類BindLa

35、yerODBC QueryInfoRectangleBitmapSymbols點集的集合StyleFeatureNotesViewInfoFieldsPointNotesQueryInfoPoints第四章 系統(tǒng)實現(xiàn)本系統(tǒng)使用VB6.0 + MapX5.0模式編程,使用MapX5.0來繪制、顯示、維護和管理地理信息;使用VB,通過ADO控件和ODBC連接數(shù)據(jù)庫來完成用戶界面設計和屬性數(shù)據(jù)管理。4.1 數(shù)據(jù)庫的實現(xiàn)該系統(tǒng)的數(shù)據(jù)分為空間數(shù)據(jù)和屬性數(shù)據(jù)兩種,空間數(shù)據(jù)主要指與空間地理位置相關的數(shù)據(jù):如管段、閥門的位置(坐標值)、唯一標識號等。屬性數(shù)據(jù)指的是設備的屬性信息:如設備的類型、型號、生產(chǎn)日期、

36、檢修狀況等。對于與地理信息有關的數(shù)據(jù),可以用MapX提供的圖層表示存儲,使之便于地理信息與地圖對象的緊密結合,對于屬性信息使用關系型數(shù)據(jù)庫Access進行存儲。 4.1.1 數(shù)據(jù)的關聯(lián) 在本應用系統(tǒng)中,管網(wǎng)空間數(shù)據(jù)是非結構化的,因而對空間數(shù)據(jù)的操作需要GIS軟件實現(xiàn),同時還要充分利用用戶現(xiàn)有的數(shù)據(jù)庫系統(tǒng),可以利用空間數(shù)據(jù)庫存儲空間數(shù)據(jù),而借助于已有的關系數(shù)據(jù)庫管理屬性數(shù)據(jù)。因此本系統(tǒng)采用空間數(shù)據(jù)庫結合關系數(shù)據(jù)庫的方案,空間數(shù)據(jù)庫與關系數(shù)據(jù)庫通過關鍵字相關聯(lián)。(如圖4.1)地物IDID1ID2地物IDID1ID2屬性值屬性1屬性值屬性2屬性值屬性值坐標X1,Y1X2,Y2(a)通過空間數(shù)據(jù)庫管理

37、空間數(shù)據(jù) (b)通過關系數(shù)據(jù)庫管理屬性數(shù)據(jù)圖4.1 空間數(shù)據(jù)庫結合關系數(shù)據(jù)庫4.1.2 文件格式MapX中有五種文件格式,分別是*.DAT,*.TAB,*.IND,*.ID,*.MAP。(1)*.TAB:屬性數(shù)據(jù)結構文件,定義了地圖屬性數(shù)據(jù)的結構,即地圖的屬性都由哪幾部分組成。用普通的記事本就可以打開,里面定義了各種屬性的名稱以及類型。(2)*.DAT:屬性數(shù)據(jù)文件,存放地圖的屬性數(shù)據(jù)。一般用Excel可以打開,看到的是在TAB中定義的各個屬性名稱所包含的值。(3)*.MAP:空間數(shù)據(jù)文件,存放圖像對象的數(shù)據(jù),包括空間對象的幾何類、坐標信息、顏色信息等。(4)*.ID:交叉索引文件(二進制),

38、連接屬性數(shù)據(jù)和圖形數(shù)據(jù),記錄地圖中每個對象在*.MAP中的位置指針。(5)*.IND:對于某些字段專門建立的索引文件。*.DAT與*.TAB文件是MapX中必須的,*.IND 、*.MAP與*.ID并不是必須的,但如果存在,*.MAP與*.ID必須共存。4.1.3 空間數(shù)據(jù)表示方法空間數(shù)據(jù)主要由地理底圖數(shù)據(jù)和網(wǎng)文件組成,各種空間數(shù)據(jù)按其特征分層進行存儲。其中地理底圖數(shù)據(jù)劃分為一些最基本的地圖圖層,如居民區(qū)、建筑物、道路等,網(wǎng)文件則由用戶水表、閥門、管道等管網(wǎng)圖層組成。(如圖4.2) 空間數(shù)據(jù)庫網(wǎng)文件地理底圖庫線圖層點圖層面圖層地下管道用戶水表圖4.2 空間數(shù)據(jù)庫結構4.2 地圖圖層的劃分 使用

39、MapX提供的GeoSet Manger管理器生成Watersuply圖層組,該圖層組由以下圖層組成:泵站層、干管層、支管層、開口層、節(jié)點層、閥門層、消火栓層、河流層、道路層、水廠層、大用戶層、普通用戶層和城市底層圖。對于每一個圖層都可以控制其是否顯示、可編輯、可選擇、可自動標注等。GeoSet Manger使用名為power.gst的文件記錄各個圖層的各種屬性值。下面以“道路”為例:“table道路.tabfile”=”道路.tab”“table道路.tabvisible”=”true”“table道路.tabautomatic labels”=”true”“table道路.tabselec

40、table”=”false”“table道路.tabeditable”=”false”簡單通俗來說在MapX中地圖的組成是各個的Feature在圖層上,所有的圖層按照一定順序排列,組成一個*.GST文件,就構成了一個完整的地圖文件。打開圖層控制(如圖4.3)對話框,選中圖層列表中某個圖層,再單擊“Display”可打開“顯示圖層”對話框,通過對話框的各項設置實現(xiàn)各項圖層控制功能。圖4.3 圖層控制對話框圖層的添加過程如下所示,依次增加河流、道路以及建筑物。圖4.4 增加河流圖層圖4.5 繼續(xù)增加道路圖層圖4.6 繼續(xù)增加建筑物圖層4.3 代碼生成4.3.1 界面設計Visual Basic提供

41、了可視化設計工具,把Windows界面設計的復雜性“封裝”起來,開發(fā)人員不必為界面設計而編寫大量程序代碼。只需要按設計要求的屏幕布局,用系統(tǒng)提供的工具,在屏幕上畫出各種“部件”,即圖形對象,并設置這些圖形對象的屬性。Visual Basic自動產(chǎn)生界面設計代碼,程序設計人員只需要編寫實現(xiàn)程序功能的那部分代碼,從而可以大大提高程序設計的效率。系統(tǒng)主界面(圖4.7)及信息維護界面(圖4.8)如下所示:圖4.7 系統(tǒng)主界面圖4.8 設備信息維護界面4.3.2 圖像的基本操作首先是一些最簡單的對于圖像的操作,在這里可以直接使用設置當前工具為所需要的工具來完成這個功能。具體代碼如下:Private Su

42、b Command1_Click()Map1.CurrentTool = miZoomOutTool 縮小End SubPrivate Sub Command2_Click()Map1.CurrentTool = miZoomInTool 放大End SubPrivate Sub Command3_Click()Map1.CurrentTool = miZoompanTool 漫游End SubPrivate Sub Command4_Click()Map1.CurrentTool = miZoomselectTool 選擇End SubPrivate Sub Command5_Click()

43、Set Map1.Bounds = Map1.Layers.Bounds 箭頭End Sub4.3.3 管網(wǎng)信息增、刪、改功能的實現(xiàn) 本系統(tǒng)使用MapX提供的各種圖形工具來實現(xiàn)地理信息的增、刪、改,在繪制圖層上繪制需要將Map的工具置為繪制工具,具體代碼如下: Map1.CurrentTool = MapXLib.ToolConstants.miAddLineTool 增加線Map1.CurrentTool = MapXLib.ToolConstants.miAddPointTool 增加點Map1.CurrentTool = MapXLib.ToolConstants.miAddPolyli

44、neTool 增加折線Map1.CurrentTool = MapXLib.ToolConstants.miAddRegionTool 增加區(qū)域例如,我們用直線來表示管段,下面是向圖層中增加一個直線對象的實現(xiàn)語句。在這里使用插入工具時一定要保證設置了繪制圖層,否則程序會報錯。Private Sub Command1_Click() Map1.CreateCustomTool 22,miToolTypeLine,miArrowCursor Map1.CurrentTool=22End Sub Private Sub Map1_ToolUsed(ByVal ToolNum As Integer,

45、ByVal X1 As Double, ByVal Y1 As Double, ByVal X2 As Double, ByVal Y2 As Double, ByVal Shift As Boolean, ByVal Ctrl As Boolean, EnableDefault As Boolean) If ToolNum=22 Then Dim pts As New Points Dim ftr As Feature Pts.AddXY X1,Y1 Pts.AddXY X2,Y2 Set frt=Map1.FeatureFactory.CreateLine(pts) Ftr.Style.P

46、ickLine Map1.Layers(”my-temp-layer”).AddFeature ftr End If End sub4.3.4 地理信息查詢和分析功能的實現(xiàn)使用MapX提供的信息工具顯示并查詢和地理信息有關的數(shù)據(jù)。例如用點表示閥門,可以通過鼠標選定閥門來顯示其信息。由于Find搜索方法要求圖層有索引字段,因此該模塊通過菜單“設置圖層據(jù)集”將數(shù)據(jù)綁定在圖層上以便于搜索圖元。該模塊中的數(shù)據(jù)綁定采用DataSet方法,打開了一個數(shù)據(jù)綁定對話框(圖4.9)以綁定數(shù)據(jù)。Private Sub layer2datasetMenuItem_Click() layer2datasetForm.

47、Show vbModal, Me 打開一個數(shù)據(jù)綁定對話框End Sub圖4.9 數(shù)據(jù)綁定對話框圖4.10 搜索對話框根據(jù)圖4.10,F(xiàn)ind對象屬性可指定的查找參數(shù)見表4.1,正是通過對這些屬性的設置實現(xiàn)了圖元的精確搜索。表4.1 Find對象屬性描述屬性描述FindDataset相匹配字段的數(shù)據(jù)集。如未指定,將使用圖層的主關鍵詞FindField相匹配的數(shù)據(jù)集字段。和FindDataset屬性一起使用RefineDataset通過制定數(shù)據(jù)集和字段進行替代使用RefineField精確搜索的字段,接受Field對象RefineLayer用于精確搜索的圖層,接受Layer對象Abbreviati

48、ons是否使用縮寫字典(布爾型)ClosestAddr使用在最精確地址處查找到的匹配(布爾型)OtherBoundary使用在其它指定地址查找到的匹配(布爾型)4.3.5 專題制圖的實現(xiàn)專題制圖是按照特定專題渲染地圖的過程。專題通常使用數(shù)據(jù)集中的一組或多組數(shù)據(jù)。專題利用顏色渲染、填充圖案、符號、直方和餅圖表示數(shù)據(jù)。根據(jù)數(shù)據(jù)中的特定值指派這些顏色、圖案或符號,可以創(chuàng)建不同的專題地圖。專題制圖模塊功能是根據(jù)已有的數(shù)據(jù)集和圖層,制作專題地圖,為系統(tǒng)提供強大的分析和可視化數(shù)據(jù)的方法、途徑。如對出現(xiàn)事故的管段進行顏色渲染,直觀地顯示其地理分布,為爆管搶修提供輔助決策。圖4.11 專題制圖對話框從圖4.1

49、1可見,規(guī)劃專題地圖有三個內(nèi)容:數(shù)據(jù)來源位置開始應用專題地圖前,需要決定要顯示哪些信息以及信息駐留的位置。創(chuàng)建專題地圖所用的數(shù)據(jù)來自數(shù)據(jù)集的Field集合。這些字段作為Theme集合的Themes.Add方法的Fields參數(shù)來傳遞。專題變量專題地圖上顯示的數(shù)據(jù)稱為專題變量。根據(jù)所執(zhí)行的專題分析類型,地圖可以顯示一個或多個專題變量。 專題類型指定要創(chuàng)建的專題地圖類型。可以創(chuàng)建的專題類型見表4.2:表4.2 專題類型類型描述MiThemeRanged范圍專題MiThemeBarChart直方專題MiThemePieChart餅圖專題MiThemeGradSymbol登記符號專題MiThemeDo

50、tDensity點密度專題MiThemeIndiidualValue獨立值專題MiThemeAutoMapX “best guess” 專題4.4 非地理信息數(shù)據(jù)的處理對于非地理信息數(shù)據(jù),使用VB中的ADO空間和ODBC數(shù)據(jù)源連接數(shù)據(jù)庫,進行信息顯示、查詢和管理。本課題采用Access 2003完成屬性數(shù)據(jù)的管理。4.4.1 設備屬性表設備屬性表用來保存設備的基本信息。結構如下: 表4.3 設備屬性表的基本信息結構序號列名數(shù)據(jù)類型長度標識主鍵允許空默認值字段說明1編號Char102類型Varchar503型號Varchar504生產(chǎn)日期Datetime85維修狀況Varchar504.4.2

51、管段數(shù)據(jù)表管段數(shù)據(jù)表用來保存管段的詳細信息。結構如下:表4.4 管段數(shù)據(jù)表結構序號列名數(shù)據(jù)類型長度標識主鍵允許空默認值字段說明1編號Char 82探測號Char83管段序號Number8, 04線路編號Char205供水區(qū)Char86地理位置Varchar407起點號Varchar168終點號Varchar169內(nèi)徑Number8, 210外徑Number8, 211公稱直徑Number8, 212管頂埋深Number12,413數(shù)據(jù)來源Char114材質Char815溝高Char1016坡度Number8,217壓力Number8, 218設計流量Number8, 219現(xiàn)狀流量Number

52、8, 220摩阻系數(shù)Number6, 421埋設方法Char1022防腐類型Char423設備狀況Char124生產(chǎn)廠家Varchar4025設計單位Varchar4026施工單位Varchar4027施工年代Char828建庫日期Date829工程編號Char164.4.3 節(jié)點數(shù)據(jù)表節(jié)點數(shù)據(jù)表用來保存各結點的信息。結構如下:表4.5 節(jié)點數(shù)據(jù)表的信息結構序號列名數(shù)據(jù)類型長度標識主鍵允許空默認值字段說明1MAPINFO_IDChar102編號Varchar123節(jié)點類型Varchar644所屬維修所Varchar645所在街道名稱Varchar646節(jié)點規(guī)格Varchar207工作狀態(tài)Varchar18類型Varchar19井位Varchar6410建筑物編號Varchar644.4.4 消防栓數(shù)據(jù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論