范況生
【摘 要】 以商丘師范學(xué)員校園地理信息系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)為例,對(duì)校園地理信息系統(tǒng)開發(fā)方法、系統(tǒng)功能設(shè)計(jì)、實(shí)現(xiàn)方法步驟進(jìn)行了詳細(xì)的介紹,并實(shí)現(xiàn)了地理信息的顯示、查詢、分析等功能。系統(tǒng)的開發(fā)可以為其他相關(guān)綜合服務(wù)系統(tǒng)的設(shè)計(jì)開發(fā)提供借鑒參考。
【關(guān)鍵詞】 GIS;Map Objects
地理信息系統(tǒng)是由計(jì)算機(jī)硬件、軟件、空間數(shù)據(jù)、應(yīng)用模型和用戶組成的一個(gè)計(jì)算機(jī)系統(tǒng),該系統(tǒng)通過對(duì)地理數(shù)據(jù)的采集、管理、處理、分析、建模和顯示,幫助我們解決復(fù)雜的規(guī)劃和管理問題。從而在資源管理、區(qū)域規(guī)劃、國土監(jiān)測、輔助決策等領(lǐng)域有著廣泛的應(yīng)用。自上世紀(jì)末以來,地理信息系統(tǒng)技術(shù)開始走進(jìn)千家萬戶,已經(jīng)深入到我們社會(huì)生活的各個(gè)方面。作為高等院校在當(dāng)今信息化浪潮中也不可避免的要實(shí)現(xiàn)校園信息管理的數(shù)字化、信息化。目前,國內(nèi)很多高校都已著手建立相應(yīng)的數(shù)字化校園系統(tǒng)。本文以商丘師范學(xué)院校園為例,介紹了“數(shù)字化校園”建設(shè)的體系構(gòu)架、系統(tǒng)功能、數(shù)據(jù)組織模型,最終構(gòu)建了商丘師范學(xué)院校園地理信息系統(tǒng)。商丘師范學(xué)院校園地理信息系統(tǒng)的建設(shè),可以實(shí)現(xiàn)校園各種地理信息的管理、查詢檢索和規(guī)劃決策,為廣大在校師生提供有效服務(wù),同時(shí)也可以擴(kuò)大學(xué)校的社會(huì)影響,為學(xué)校宣傳和新生了解學(xué)校提供一個(gè)有力的平臺(tái)。
1 開發(fā)工具與開發(fā)平臺(tái)
組件技術(shù)是實(shí)現(xiàn)軟件重用的重要解決技術(shù),組件技術(shù)不僅具有封裝性、繼承性、多態(tài)性這三個(gè)特性,而且更適合于現(xiàn)代軟件更新快、規(guī)模大、強(qiáng)調(diào)寫作的軟件環(huán)境。組件的優(yōu)勢在于可以部分升級(jí),易于維護(hù),實(shí)現(xiàn)動(dòng)態(tài)組合,提高了軟件生產(chǎn)力,由于采用標(biāo)準(zhǔn)接口、標(biāo)準(zhǔn)規(guī)范、標(biāo)準(zhǔn)協(xié)議,這就增加了異構(gòu)軟件的可能,適應(yīng)了現(xiàn)代軟件發(fā)展的要求。組件式平臺(tái)主要有Microsoft的COM/DCOM等?;贑OM/DCOM,Microsoft推出了ActiveX技術(shù)。作為ActiveX技術(shù)的重要內(nèi)容,ActiveX控件是當(dāng)今可視化程序設(shè)計(jì)中應(yīng)用最為廣泛的標(biāo)準(zhǔn)組件[1]。組件GIS不僅可以解決傳統(tǒng)GIS在軟件開發(fā)、應(yīng)用系統(tǒng)集成和用戶學(xué)習(xí)使用等方面面臨的困難,而且有利于降低成本,具有無限擴(kuò)展性、開發(fā)簡捷方便、小巧靈活、價(jià)格便宜、面向大眾等特點(diǎn)。組件GIS是當(dāng)今GIS發(fā)展的一種重要趨勢。因此以高級(jí)程序設(shè)計(jì)語言為開發(fā)平臺(tái),結(jié)合組件式GIS,適合于開發(fā)各個(gè)行業(yè)的應(yīng)用型地理信息系統(tǒng)。
本系統(tǒng)的開發(fā)平臺(tái)是Microsoft公司開發(fā)的應(yīng)用程序開發(fā)工具Visual Basic6.0,它的特點(diǎn)主要是:它采用可視化的集成開發(fā)環(huán)境,具有面向?qū)ο蟮目梢暬ぞ?,初學(xué)者只需要掌握幾個(gè)關(guān)鍵詞就可以建立自己的應(yīng)用程序;采用面向?qū)ο蟮某绦蛟O(shè)計(jì)思想,整個(gè)應(yīng)用程序由若干個(gè)彼此獨(dú)立的事件過程構(gòu)成,使得應(yīng)用程序的代碼較短,易于開發(fā)人員編寫和維護(hù);VB還是一種可擴(kuò)充的編程語言,支持第三方開發(fā)的應(yīng)用程序、支持訪問動(dòng)態(tài)鏈接庫以及應(yīng)用程序接口,這些特征在很大程度上可增強(qiáng)VB的編程能力。
本系統(tǒng)采用的開發(fā)平臺(tái)為基于GIS組件Map Objects(簡稱MO)。Map Object是由美國的ESRI公司開發(fā),是當(dāng)今流行的組件式GIS開發(fā)軟件。Map Object是一組地圖軟件的組件,它包含了超過45個(gè)可編程OLE對(duì)象。Map Objects的對(duì)象可分為5大類:地理匹配對(duì)象、數(shù)據(jù)訪問對(duì)象、地圖顯示對(duì)象、幾何圖形對(duì)象和實(shí)用對(duì)象[2]。利用這些對(duì)象可以在普通的編程語言上實(shí)現(xiàn)主要的地理信息系統(tǒng)的功能?;贛O的開發(fā)模式具有以下的優(yōu)點(diǎn):系統(tǒng)開發(fā)周期短、費(fèi)用低、易安裝維護(hù);數(shù)據(jù)組織方式與相應(yīng)的G1S工具軟件兼容,便于其他系統(tǒng)的數(shù)據(jù)調(diào)用;可供選擇的開發(fā)語言比較多,如Visual basic等[3]。
2 用Map Objects開發(fā)GIS系統(tǒng)的方法
2.1 Map Objects的體系結(jié)構(gòu)
Map Objects可以說得上是最優(yōu)雅簡潔的GIS軟件組件。它以最少的接口提供了常用的GIS功能,甚至GPS的動(dòng)態(tài)特性,同時(shí)做到了結(jié)構(gòu)合理,簡單明了,容易理解和擴(kuò)展。GIS應(yīng)用開發(fā)人員通過在通用開發(fā)平臺(tái)上調(diào)用可編程對(duì)象及其方法、屬性來實(shí)現(xiàn)各種GIS功能[4]。
Map Objects的基本功能:
(1)能通過地圖符號(hào)顯示地圖要素,并支持自定義符號(hào)。用符號(hào)表達(dá)地理要素是滌綸制圖的基本方法,Map Objects自帶有一些地圖符號(hào),也可以有用戶自定義設(shè)計(jì)各種符號(hào),這極大豐富了地圖表現(xiàn)力。
(2)支持對(duì)數(shù)據(jù)圖層的各種管理和操作。Map Objects為用戶提供了較為齊全的圖層編輯和管理功能。如圖層的添加、刪除以及圖層上下順序的調(diào)整等。
(3)支持各種圖形操作。通過Map Objects,開發(fā)人員可以實(shí)現(xiàn)一些基本的圖形操作,如放大、縮小和漫游等。
(4)可以添加注記。注記是地圖的重要內(nèi)容,主要包括名稱和說明兩大類,Map Objects為開發(fā)人員提供了臨時(shí)注記、注記要素和屬性注記等各種添加地圖注記的方法,并且可以設(shè)置注記的顏色、大小、字體、間隔、排列、位置。
(5)提供各種查詢功能。Map Objects為開發(fā)人員提供了多種進(jìn)行空間查詢的方法,通過他們可以實(shí)現(xiàn)幾何參數(shù)查詢、空間定位查詢、空間關(guān)系查詢和SQL查詢等多種形式查詢。
(6)提供一定的空間分析功能。通過Map Objects提供的空間分析方法可以實(shí)現(xiàn)一些簡單的空間分析功能,例如幾何量測、緩沖區(qū)分析、疊置分析、網(wǎng)絡(luò)分析。
(7)提供空間數(shù)據(jù)庫訪問功能。Map Objects可以通過ArcSDE訪問存放在數(shù)據(jù)庫中的空間數(shù)據(jù),并且可以把數(shù)據(jù)庫中的數(shù)據(jù)作為一個(gè)圖層在客戶端進(jìn)行顯示。
(8)提供地圖打印機(jī)輸出功能。在進(jìn)行地圖輸出之前,通過Map Objects用戶首先可以實(shí)現(xiàn)地圖整飾,對(duì)要輸出的地圖圖面進(jìn)行調(diào)整;同時(shí)可以對(duì)地圖進(jìn)行打印輸出,并能把當(dāng)前視口中的地圖按照?qǐng)D像格式導(dǎo)出。endprint
總之,Map Objects在地圖查詢、顯示以及制圖輸出等方面都有比較強(qiáng)大的GIS功能,從而滿足不同層次用戶的需求。
2.2 MO開發(fā)GIS系統(tǒng)的過程
Map Objects的使用和開發(fā)過程與其他的ActiveX控件沒有兩樣,在Visual°Basic、Delphi、Visual° C++等能夠支持控件開發(fā)的編程環(huán)境下,一旦把控件插入到編程項(xiàng)目中,就可以通過接口使用控件所提供的各種方法。利用M0開發(fā)GIS系統(tǒng)一般遵循的基本步驟[6]:
(1)選擇合適的數(shù)據(jù)模型,創(chuàng)建數(shù)據(jù)庫:地理信息系統(tǒng)中的數(shù)據(jù)庫有兩種:存儲(chǔ)地理數(shù)據(jù)的空間數(shù)據(jù)庫和存儲(chǔ)非地理數(shù)據(jù)的屬性數(shù)據(jù)庫。shape文件是ESRI公司提供的存儲(chǔ)地理數(shù)據(jù)的矢量格式,Shape文件的格式是公開的,詳細(xì)Shape格式說明書是完全公開的[5]。通過空間實(shí)體的識(shí)別碼可將屬性數(shù)據(jù)庫與空問數(shù)據(jù)庫建立聯(lián)系。 MO借助空間數(shù)據(jù)庫引擎(SDE)可以支持對(duì)多種常用數(shù)據(jù)庫的訪問,包括Access、Informix、Oracle、Microsoft SQL Server、Sybase及其他通過ODBC連接的數(shù)據(jù)庫。
(2)加載與顯示地圖:由于一個(gè)Shape文件只包含一個(gè)專題圖層(點(diǎn)、層或面要素中的一種),因此特定區(qū)域內(nèi)的所有地理對(duì)象會(huì)分解成多個(gè)圖層分別進(jìn)行存儲(chǔ)。要顯示整幅地圖,應(yīng)該將地圖所包含的全部圖層都添加到Map控件中。每個(gè)圖層通過名稱來加以區(qū)分,同時(shí)還要注意各圖層的顯示順序。此外,在程序運(yùn)行中也可單獨(dú)在地圖上添加或顯示某圖層,刪除指定的圖層或改變圖層的屬性。
(3)增加、刪除、更改地理信息。Map Objects中的地理對(duì)象通常使用點(diǎn)(如電線桿,樹木,窨井蓋)、線(如道路,河流)、面(如綠地、水域)表示,并提供這些標(biāo)準(zhǔn)地理實(shí)體對(duì)象的點(diǎn)、線、面的類型定義。利用MO的各種選擇、訪問、定位功能,可以向構(gòu)成地圖的各個(gè)點(diǎn)層、線層、面層中添加或刪除實(shí)體,或者更改相應(yīng)實(shí)體的屬性。
(4)實(shí)現(xiàn)數(shù)據(jù)的查詢和分析統(tǒng)計(jì):GIS最常見的特點(diǎn)是可以進(jìn)行空間數(shù)據(jù)的各種查詢與統(tǒng)計(jì)。例如用MO開發(fā)的GIS中的查詢主要有三種:按相對(duì)位置的范圍搜索;按邏輯查詢,即按SQL語句的條件從句查詢;根據(jù)某個(gè)或某些圖形特征查詢其他相聯(lián)系的圖形特征。
3 開發(fā)與實(shí)現(xiàn)
3.1 校園GIS功能模塊設(shè)計(jì)
結(jié)合商丘師范學(xué)員校園地理信息系統(tǒng)的功能定位和開發(fā)需求,本系統(tǒng)的功能模塊包括圖形顯示與管理、空間分析功能、地圖打印功能、信息查詢功能、專題地圖制作等五個(gè)方面。各模塊功能如下所述[7]:
3.1.1 圖形顯示與管理
能夠?qū)崿F(xiàn)區(qū)域內(nèi)空間數(shù)據(jù)的無級(jí)放大、縮小、漫游等基本的操作,可以任意選擇打開或關(guān)閉某一數(shù)據(jù)層,也可根據(jù)顯示范圍的大小,自動(dòng)調(diào)節(jié)地圖上內(nèi)容的詳細(xì)程度,以保持圖面的清晰程度。
3.1.2 空間分析功能
通過緩沖區(qū)分析是圍繞空間實(shí)體自動(dòng)建立其周圍一定寬度范圍內(nèi)的多邊形圖層,它是用來解決空間臨近度問題的空間分析工具之一。統(tǒng)計(jì)分析是對(duì)收集到的數(shù)據(jù)進(jìn)行整理歸類并進(jìn)行解釋。空間距離量算可以解決任意兩點(diǎn)之間的最短距離與最佳路徑的選擇問題。
3.1.3 地圖打印功能
本系統(tǒng)具備簡單的打印功能以及數(shù)據(jù)輸出功能,將各種查詢和分析結(jié)果結(jié)果以圖像的形式輸出;對(duì)于屬性數(shù)據(jù)可以導(dǎo)入到Excel數(shù)據(jù)格式。
3.1.4 信息查詢功能
它能向用戶提供校園地形圖、現(xiàn)狀圖、規(guī)劃圖等方面的信息??梢詫?shí)現(xiàn)空間數(shù)據(jù)和屬性數(shù)據(jù)的雙向查詢,即點(diǎn)擊相應(yīng)地理事物查詢所需的屬性信息,如學(xué)校的占地面積、建筑面積等,也可以通過屬性查詢地物的空間信息,如通過教學(xué)樓名稱查詢位置等。
3.1.5 專題圖制作
GIS不僅可以輸出全要素地圖,也可以突出表現(xiàn)一種或幾種地理要素,以定點(diǎn)符號(hào)法、質(zhì)別底色法、分區(qū)圖表法等手段制作各種專題題圖、各類統(tǒng)計(jì)圖、圖表及數(shù)據(jù)等,完成盡可能完善、詳盡地表示制圖區(qū)內(nèi)的一種或幾種要素的地圖制作。
3.2 系統(tǒng)實(shí)現(xiàn)
系統(tǒng)的主窗口如圖1所示。
4 結(jié)語
組件式的地理信息系統(tǒng)開發(fā)方式已經(jīng)成為現(xiàn)在軟件集成的主要方法,而GIS技術(shù)與實(shí)際情況相結(jié)合解決實(shí)際的問題,已經(jīng)成為近年來地理信息系統(tǒng)研究的熱門方向。本文選用的MO組件程序高度的模塊化,使用比較簡單,縮短開發(fā)周期、降低開發(fā)難度,該系統(tǒng)實(shí)現(xiàn)了校園地理信息的可視化管理,極大提高了校園信息化管理的水平。
參考文獻(xiàn)
[1]劉向銅,熊助國,曹秋香等.基于MO 的校園GIS的設(shè)計(jì)與實(shí)現(xiàn)[J].地理空間地理信息,2008,6(6):34-36.
[2]王春波.基于MO 的校園GIS的設(shè)計(jì)與實(shí)現(xiàn)[J].遼寧省交通高等專科學(xué)校學(xué)報(bào),2008,10(4):55-57.
[3]劉小生,劉傳立.基于VB和Map Objects平臺(tái)的空間數(shù)據(jù)查詢方法探討.有色金屬,2005,57(6):46-48.
[4]薛偉.Map Objects-地理信息系統(tǒng)程序設(shè)計(jì)[M].北京:國防工業(yè)出版社,2004.
[5]劉光.地理信息系統(tǒng)二次開發(fā)教程組件篇[M].北京:清華大學(xué)出版社,2003.
[6]龔沛曾,陸慰民,楊志強(qiáng).Visual Basic程序設(shè)計(jì)教程(6.0版)[M].北京:高等教育出版社,2000.
[7]高尚宇.基于GIS的“數(shù)字校園”信息系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].青島:山東科技大學(xué),2005.endprint