




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第1章 GIS開發(fā)技術(shù)簡介第1章 GIS開發(fā)技術(shù)簡介地理信息系統(tǒng)工程是應(yīng)用系統(tǒng)工程的原理和方法,針對特定的實際應(yīng)用目的與要求,統(tǒng)籌設(shè)計、優(yōu)化、建設(shè)、評價、維護實用地理信息系統(tǒng)的全部步驟和過程。它最基本的原理就是系統(tǒng)工程原理,即從系統(tǒng)的觀點出發(fā),立足于整體,統(tǒng)籌全局,同時又將系統(tǒng)分析和系統(tǒng)綜合有機地結(jié)合起來,采用定量的方法或定性與定量相結(jié)合的方法,提供合理的地理信息系統(tǒng)建設(shè)思路和模式。 1.1 地理信息系統(tǒng)工程開發(fā)方法與一般信息系統(tǒng)一樣,地理信息系統(tǒng)工程開發(fā)必須采用一定的策略。地理信息系統(tǒng)工程的開發(fā)策略有5種:結(jié)構(gòu)化設(shè)計方法、“自底向上”方法、快速原型法、面向?qū)ο笤O(shè)計方法和企業(yè)系統(tǒng)規(guī)劃法。1.1
2、.1 結(jié)構(gòu)化設(shè)計方法結(jié)構(gòu)化設(shè)計方法是軟件發(fā)展早期形成的,所謂“結(jié)構(gòu)化”就是有組織、有計劃和有規(guī)律的一種安排。結(jié)構(gòu)化設(shè)計方法是利用工程分析的有關(guān)概念,將系統(tǒng)描述分為若干層次,采用自上向下劃分模塊,逐步求精的一種系統(tǒng)方法。結(jié)構(gòu)化設(shè)計方法的步驟是:首先對問題進行仔細分析,確定其輸入、輸出數(shù)據(jù),寫出程序運行的主要過程和任務(wù);然后從大的功能方面把一個問題的解決過程分成幾個子問題,每個子問題形成一個模塊,逐層細分,逐步求精,直到整個問題可用程序設(shè)計語言明確地描述出來為止。結(jié)構(gòu)化設(shè)計方法的特點是:先整體后局部,先抽象后具體,結(jié)構(gòu)描述清晰,便于掌握系統(tǒng)全貌,也可以逐步細化為程序語句;對下層系統(tǒng)的實施往往缺乏約
3、束力,從而因工作量大而影響具體細節(jié)的考慮,致使開發(fā)周期拉長、費用增加、評價標準難以確定等;缺乏一定的靈活性和適應(yīng)性。1.1.2 “自底向上”方法“自底向上”方法出現(xiàn)于早期的計算機管理應(yīng)用系統(tǒng)。它是從現(xiàn)行的業(yè)務(wù)現(xiàn)狀出發(fā),先實現(xiàn)一個具體的初級功能,然后由低到高,增加計劃、控制和決策等功能,實現(xiàn)總目標?!白缘紫蛏稀狈椒ǖ牟襟E是:首先對系統(tǒng)的底層模塊進行分析和設(shè)計,當下層子系統(tǒng)分析完成后,再進行上一層系統(tǒng)的分析和設(shè)計,將下層不同功能模塊集中起來,這樣逐層進行綜合和集中,直至完成總的地理信息系統(tǒng)分析和設(shè)計。“自底向上”方法的特點是:由表及里、由淺入深地解決問題,使得地理信息系統(tǒng)的開發(fā)易于適應(yīng)組織機構(gòu)真正
4、的需要;有助于發(fā)現(xiàn)系統(tǒng)的增長需要,所獲得的經(jīng)驗有助于下一階段的開發(fā),易于控制和管理。但“自底向上”方法只注重局部而忽視了對整體的把握,使地理信息系統(tǒng)難以實現(xiàn)其整體性;同時由于系統(tǒng)未進行全局規(guī)劃,致使數(shù)據(jù)的一致性和完整性難以保證;而且為了保證系統(tǒng)性能的需求,往往要重新調(diào)整,甚至重新設(shè)計系統(tǒng)。鑒于此,在實際應(yīng)用中,經(jīng)常采用將“自底向上”方法與結(jié)構(gòu)化設(shè)計方法相結(jié)合的綜合方法。綜合方法充分發(fā)揮了結(jié)構(gòu)化設(shè)計方法和“自底向上”方法的優(yōu)點。采用綜合方法進行地理信息系統(tǒng)軟件開發(fā)的具體思路是:在開發(fā)過程中,首先建立系統(tǒng)的頂層模型,并對其進行模擬、分析和調(diào)整;其次,將頂層模型自頂向下地進行分解,建立該系統(tǒng)各個子系
5、統(tǒng)的模型,對這些子系統(tǒng)模型進行模擬、分析和調(diào)整,如有不適,則進行修改。因此,綜合方法是一個“自頂向下建模,由底向上修改”的反復疊代的過程。簡而言之,是在需求牽引下,自頂向下分層細化地建模,然后通過對模型的虛擬執(zhí)行,由底向上逐層進行修改,直至各層的模擬結(jié)果都滿足需求為止。1.1.3 快速原型法 早期系統(tǒng)設(shè)計方法大多采用線性模型,即將系統(tǒng)設(shè)計與系統(tǒng)實施處理成無回歸的單向發(fā)展過程。隨著地理信息系統(tǒng)技術(shù)的發(fā)展,這種線性模型的設(shè)計方法已經(jīng)不能適應(yīng)地理信息系統(tǒng)的系統(tǒng)設(shè)計,其原因在于地理信息系統(tǒng)的服務(wù)對象(即用戶)的需求不是固定不變的,而是逐漸發(fā)展的,因此,初期擬定的目標和系統(tǒng)數(shù)據(jù)規(guī)范等很難保持一成不變。與
6、此相反,不斷地進行修改和完善是必然的。此外,現(xiàn)代技術(shù)的發(fā)展變化很快,要使地理信息系統(tǒng)的應(yīng)用跟上新技術(shù)的發(fā)展常常也需要改變原有的設(shè)計。為了適應(yīng)這些發(fā)展和變化的要求,地理信息系統(tǒng)的設(shè)計人員對傳統(tǒng)設(shè)計方法中的原型法(Prototype Method)進行了研究和發(fā)展,使之更能適合于地理信息系統(tǒng)的設(shè)計工作。原型法要求在系統(tǒng)建設(shè)的早期階段,生成一個實實在在的系統(tǒng)原型,然后將該原型提供給用戶使用,聽取用戶的批評意見,根據(jù)反饋信息修正系統(tǒng)原型,補充新的數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)和應(yīng)用模型,再提交給用戶使用。原型法的基本步驟是:識別基本要求,做出基本設(shè)想;開發(fā)工作模型,提出一定的宏觀控制模型;程序編制和模型修正,通過軟件
7、編制不斷發(fā)現(xiàn)技術(shù)上的擴大點,并通過與用戶的交流取得對系統(tǒng)要求和開發(fā)潛力的新認識,調(diào)整系統(tǒng)設(shè)計方案;原型設(shè)計完成,根據(jù)一定的標準判斷用戶需求是否已被體現(xiàn),從而來決定系統(tǒng)是繼續(xù)改進還是終止。原型法的特點是:不必一開始就清晰地描述一切,而是當明確任務(wù)后,在軟件的實現(xiàn)過程中,逐步對系統(tǒng)進行定義和改造,直至系統(tǒng)完成。其優(yōu)點是:在系統(tǒng)設(shè)計過程中,包含有一個再設(shè)計階段,它是一種動態(tài)的設(shè)計技術(shù);而且該方法能夠創(chuàng)立一個看得見摸得著的樣板系統(tǒng),便于用戶試用和提出修改意見,這樣就更有利于吸引用戶介入系統(tǒng)設(shè)計工作;同時該方法對于較復雜和具體有不確定性的系統(tǒng)目標有較強的適應(yīng)性,可以使設(shè)計與實施達到更為緊密的結(jié)合。因此,
8、原型法能夠比較好地適應(yīng)現(xiàn)代地理信息系統(tǒng)工程的建設(shè)特點,是地學人員更愿意采用的一種開發(fā)策略。1.1.4 面向?qū)ο笤O(shè)計方法面向?qū)ο笤O(shè)計方法是近年來發(fā)展起來的一種新的程序設(shè)計技術(shù),其基本思想是:將系統(tǒng)所面對的問題,應(yīng)用繼承和封裝機制,按其自然屬性進行分隔,并按照人們通常的思維方式進行描述,建立每個對象的領(lǐng)域模型和聯(lián)系,既模擬信息實體的內(nèi)在結(jié)構(gòu)又模擬其動力機制,使設(shè)計出的軟件盡可能直接地表現(xiàn)出問題求解的過程。整個系統(tǒng)由對象組成,對象之間的聯(lián)系通過消息進行。由于采用了將數(shù)據(jù)和操作行為封裝在一起的模塊化結(jié)構(gòu),從而使系統(tǒng)很容易重組。面向?qū)ο笤O(shè)計方法的基本步驟包含以下幾個方面。(1)系統(tǒng)分析:用問題空間中的實
9、體(或?qū)ο?及其相互關(guān)系建立系統(tǒng)邏輯模型,以一種更加自然的方式描述系統(tǒng)的需求及體系結(jié)構(gòu)。由于問題空間中的對象是相對穩(wěn)定的,即使有變化,通常也只影響系統(tǒng)的局部或?qū)⑾到y(tǒng)需求的變化局部化,因此系統(tǒng)具有一個相對穩(wěn)定的結(jié)構(gòu)。(2)系統(tǒng)構(gòu)造:系統(tǒng)構(gòu)造包括系統(tǒng)設(shè)計和系統(tǒng)實現(xiàn),在系統(tǒng)設(shè)計過程中,將需求模型和分析模型輸入,考慮具體的實現(xiàn)環(huán)境,設(shè)計分析模型中的每一個對象及對象之間的相互關(guān)系,形成設(shè)計模型,最后用某種具體的編程語言描述設(shè)計模型,形成以源代碼為主要內(nèi)容的實現(xiàn)模型。(3)系統(tǒng)測試:測試過程根據(jù)需求與設(shè)計模型驗證模型的正確性,形成系統(tǒng)測試模型。測試模型描述系統(tǒng)的單元測試、集成測試、系統(tǒng)測試過程及其測試結(jié)果
10、。面向?qū)ο笤O(shè)計方法的優(yōu)點是:更接近于描述問題而不是對程序的描述,軟件設(shè)計帶有智能化的性質(zhì),這種形式更便于程序設(shè)計人員與應(yīng)用人員的交流,軟件設(shè)計也更具有普遍意義,尤其在地理信息系統(tǒng)的智能化要求和專家系統(tǒng)技術(shù)不斷提高的形勢下,面向?qū)ο笤O(shè)計方法是更有效的途徑。1.1.5 企業(yè)系統(tǒng)規(guī)劃法企業(yè)系統(tǒng)規(guī)劃法認為開發(fā)一個信息系統(tǒng)應(yīng)具備以下幾個條件。(1)必須支持企業(yè)的戰(zhàn)略目標。(2)應(yīng)當表達企業(yè)的各個管理層次(即戰(zhàn)略管理層、策略管理層、操作管理層)的需求,針對不同的管理活動,建立一個合理的框架,并據(jù)此定義信息系統(tǒng)。(3)應(yīng)該向整個企業(yè)提供一致的信息。由于計算機在發(fā)展中的原因,系統(tǒng)的分模塊開發(fā)會形成信息的不一致
11、性,包括形式上的不一致、定義上的不一致和時間上的不一致。因此,要制定關(guān)于信息一致性定義、技術(shù)實踐等策略和規(guī)程。(4)應(yīng)該經(jīng)得起組織機構(gòu)和管理體制的變化,即信息系統(tǒng)應(yīng)具有可變更性或?qū)Νh(huán)境變更的適應(yīng)性。(5)首先應(yīng)進行“自頂向下”的識別,再進行“自底向上”的設(shè)計。企業(yè)系統(tǒng)規(guī)劃法的基本方法是“自頂向下”地識別系統(tǒng)目標、識別企業(yè)過程、識別數(shù)據(jù),“自底向上”地分步設(shè)計系統(tǒng)。1.2 地理信息系統(tǒng)的開發(fā)方式應(yīng)用型地理信息系統(tǒng)的開發(fā)通常分為兩種方式:獨立開發(fā)和二次開發(fā)。其中二次開發(fā)又分為單純二次開發(fā)和集成二次開發(fā)。1.2.1 獨立開發(fā)獨立開發(fā)是指不依賴于任何地理信息系統(tǒng)工具軟件,從空間數(shù)據(jù)的采集、編輯到數(shù)據(jù)的
12、處理分析及結(jié)果輸出,所有的算法都由開發(fā)者獨立設(shè)計,然后選用某種程序設(shè)計語言,如Visual C+、Delphi、C+ Builder、Visual Basic等,在一定的操作系統(tǒng)平臺上編程實現(xiàn)。這種方式的好處在于不需要依賴任何商業(yè)地理信息系統(tǒng)工具軟件,減少開發(fā)成本,同時由于程序員可以對程序的各個方面進行總體控制,因此,系統(tǒng)各組成部分之間的聯(lián)系最為緊密,綜合程度和操作效率最高。但由于地理信息系統(tǒng)的復雜性,工作量十分龐大,開發(fā)周期長,對于多數(shù)開發(fā)者來說,由于能力、時間、財力方面的限制,使其開發(fā)出來的產(chǎn)品很難在功能上與商業(yè)化地理信息系統(tǒng)工具軟件相比,而且在購買地理信息系統(tǒng)工具軟件上省下的錢可能還抵不
13、上開發(fā)者在開發(fā)過程中所付出的代價。地理信息系統(tǒng)發(fā)展初期一般采用這種方式,目前,地理信息系統(tǒng)的開發(fā)已經(jīng)很少采用這種開發(fā)方案。1.2.2 單純二次開發(fā)單純二次開發(fā)是指完全借助于地理信息系統(tǒng)工具軟件提供的二次開發(fā)語言進行應(yīng)用系統(tǒng)開發(fā)。目前,商業(yè)化的地理信息系統(tǒng)工具軟件已經(jīng)相當成熟,它們大多提供了用戶進行二次開發(fā)的宏語言,如ESRI的ArcView提供了Avenue語言,Mapinfo公司研制的Mapinfo Professional提供了MapBasic語言等。用戶可以利用這些宏語言,以原GIS工具軟件為開發(fā)平臺,針對不同應(yīng)用對象,開發(fā)自己的應(yīng)用程序。具體開發(fā)時,可首先采用可視化開發(fā)平臺動態(tài)鏈接庫(
14、DLL),以實現(xiàn)地理信息系統(tǒng)工具軟件未提供或難以實現(xiàn)的功能,然后在二次開發(fā)宏語言中調(diào)用動態(tài)鏈接庫,從而既能充分利用二次開發(fā)語言操縱地圖對象的強大功能,又避免了二次開發(fā)語言功能上的不足。這種方式省時省心,但進行二次開發(fā)的宏語言,作為編程語言只能算是二流,功能極弱,用它們開發(fā)應(yīng)用程序的界面不美觀,仍然不盡如人意。同時二次開發(fā)語言對用戶和應(yīng)用開發(fā)者而言也存在學習上的負擔,而且,使用系統(tǒng)所提供的二次開發(fā)語言進行開發(fā)往往受到限制,難以處理復雜問題。1.2.3 集成二次開發(fā)集成二次開發(fā)是指利用專業(yè)地理信息系統(tǒng)工具軟件或其提供的組件來實現(xiàn)地理信息系統(tǒng)的基本功能,同時,采用通用軟件開發(fā)工具尤其是可視化開發(fā)工具
15、,如Delphi、Visual C+、Visual Basic、Power Builder等作為開發(fā)平臺,進行兩者的集成開發(fā)。集成二次開發(fā)目前主要有OLE/DDE和組件式兩種開發(fā)方式。1. OLE/DDE開發(fā)方式DDE(Dynamic Data Exchange,動態(tài)數(shù)據(jù)交換)起初是作為一種基于消息的協(xié)議在Windows(3.x之前)中實現(xiàn),用來在不同的Windows應(yīng)用程序之間交換信息。但是 DDE的最初形式很復雜,在實際的應(yīng)用程序開發(fā)中較少使用。隨著Windows 3.0的發(fā)布,DDE得到了很大程度上的簡化,組合到應(yīng)用程序的工作也變得較為容易。DDE服務(wù)包含了大約25個以最初的基于消息的協(xié)
16、議概念為基礎(chǔ)的函數(shù),利用應(yīng)用程序編程接口(API)調(diào)用它則能夠?qū)崿F(xiàn)應(yīng)用程序與DDE服務(wù)器之間的交流。OLE(Object Linking Embedding,對象鏈接與嵌入)相比DDE出現(xiàn)得較晚,它是一個服務(wù)可控制、結(jié)構(gòu)可擴展,基于對象集成組件的、統(tǒng)一的服務(wù)環(huán)境,是應(yīng)用程序共享對象的工業(yè)標準,其實質(zhì)是在應(yīng)用程序中嵌入其他程序提供的對象和數(shù)據(jù),從而獲得特定功能的程序設(shè)計方法。OLE提供的服務(wù)有:OLE自動化(自動化能使程序向其他客戶應(yīng)用程序提供對象屬性和方法,從而使客戶應(yīng)用程序可以對OLE服務(wù)器所提供的對象進行操作)、可視化編程(指客戶應(yīng)用程序直接編輯 OLE文檔中的對象,而不必切換到服務(wù)器應(yīng)用
17、程序)、OLE復合文檔(包含多個應(yīng)用程序的窗口或文檔)、拖放(拖放是指用戶通過從一個應(yīng)用程序中拖動信息并放入另一個應(yīng)用程序中交換數(shù)據(jù))。OLE自動化允許一個程序模塊控制其他程序模塊的執(zhí)行,換句話說,支持自動化的程序模塊的行為是可以通過編程來控制的。這種控制通過應(yīng)用程序?qū)ψ詣踊С殖绦蛩峁┑膶ο蟮脑L問來完成,OLE自動化實質(zhì)是兩個不同的應(yīng)用程序之間以客戶機/服務(wù)器(C/S)方式進行的動態(tài)信息交換過程,作為服務(wù)器一方的應(yīng)用程序提供一組具有特定方法和屬性的對象,客戶程序則使用標準的通信接口對其進行訪問和控制。采用OLE自動化技術(shù)或利用DDE技術(shù)進行地理信息系統(tǒng)集成二次開發(fā)的思路是:用軟件開發(fā)工具開
18、發(fā)前臺可執(zhí)行應(yīng)用程序,以O(shè)LE自動化方式或DDE方式啟動地理信息系統(tǒng)工具軟件在后臺執(zhí)行,利用回調(diào)技術(shù)動態(tài)獲取其返回信息。采用這種方法能夠充分利用地理信息系統(tǒng)工具軟件強大的地理空間數(shù)據(jù)和屬性數(shù)據(jù)管理能力,以及可視化開發(fā)平臺的面向?qū)ο箝_發(fā)功能,實現(xiàn)應(yīng)用地理信息開發(fā)。使用OLE/DDE技術(shù)的應(yīng)用型地理信息系統(tǒng)應(yīng)用程序與其支持的工具型地理信息系統(tǒng)之間是一種同時并行運行的關(guān)系,其在功能上十分靈活,就像應(yīng)用程序使用操作系統(tǒng)的資源一樣,但同時也增大了系統(tǒng)開銷與不穩(wěn)定性。2. 組件式開發(fā)方式伴隨著軟件開發(fā)技術(shù)的發(fā)展,地理信息系統(tǒng)軟件模式經(jīng)歷了多個階段。組件式地理信息系統(tǒng)以其面向?qū)ο蟆⒖蓴U展性強等特點和優(yōu)勢,目
19、前已經(jīng)成為地理信息系統(tǒng)的主要平臺。1)組件技術(shù)隨著軟件開發(fā)技術(shù)的發(fā)展,尤其是面向?qū)ο?Object Oriented)技術(shù)出現(xiàn)以后,軟件開發(fā)模式出現(xiàn)了重大變化。以C+面向?qū)ο蠹夹g(shù)為基礎(chǔ)發(fā)展起來的COM(組件對象模型)技術(shù)實現(xiàn)了在二進制代碼級的對象重用,且不依賴于特定的編程語言。在組件技術(shù)的概念模式下,軟件系統(tǒng)可以被視為相互協(xié)同工作的對象集合,其中每個對象都會提供特定的服務(wù),發(fā)出特定的消息,并且以標準形式公布出來,以便其他對象了解和調(diào)用。組件間的接口通過一種與平臺無關(guān)的語言IDL(Interface Define Language)來定義,而且是二進制兼容的,使用者可以直接調(diào)用執(zhí)行模塊來獲得對象
20、提供的服務(wù)。早期的類庫,提供的是源代碼級的重用,只適用于比較小規(guī)模的開發(fā)形式;而組件則封裝得更加徹底,更易于使用,并且不限于C+之類的語言,可以在各種開發(fā)語言和開發(fā)環(huán)境中使用。COM(Component Object Model,組件對象模型)是組件之間相互接口的規(guī)范,其作用是使各種組件和應(yīng)用軟件能夠用一種統(tǒng)一的標準方式進行交互。COM本身不是一種面向?qū)ο蟮恼Z言,而是一種與源代碼無關(guān)的二進制標準。它所建立的是一個軟件模塊與另一個軟件模塊之間的鏈接,當這種鏈接建立之后,模塊之間就可以通過稱為“接口”的機制來進行通信。COM標準增加了保障系統(tǒng)和組件完整的安全機制,較容易擴展到分布式環(huán)境?;诜植际?/p>
21、環(huán)境下的COM被稱作DCOM(Distribute COM,分布式組件對象模型)。DCOM實現(xiàn)了COM對象與遠程計算機上的另一個對象之間直接進行交互。由于接口的定義和功能保持不變,DCOM組件開發(fā)者可以改變接口功能,為對象增加新功能,用更好的對象來代替原有對象,而建立在組件基礎(chǔ)上的應(yīng)用程序幾乎不用修改,從而大大提高了代碼的重用性。COM在地理信息系統(tǒng)中的應(yīng)用已經(jīng)引起國內(nèi)外一些著名軟件廠商的重視。它們先后推出了各自基于COM的地理信息系統(tǒng)軟件,如Mapinfo公司的MapX ESRI公司的MapObjects和Arcgis Engine、北京超圖軟件股份有限公司的SuperMap Objects
22、和中地數(shù)碼集團的MaPGIS等。2)組件式地理信息系統(tǒng)面向?qū)ο蠹夹g(shù)的應(yīng)用,改變了地理信息系統(tǒng)的傳統(tǒng)設(shè)計方法與思想,于是出現(xiàn)了組件式地理信息系統(tǒng)。組件式地理信息系統(tǒng)的基本思想是把各大功能模塊劃分為幾個ActiveX標準組件,每個組件完成不同的功能,諸如空間數(shù)據(jù)獲取、坐標轉(zhuǎn)換、圖形編輯、數(shù)據(jù)存儲、數(shù)據(jù)查詢、數(shù)據(jù)分析和制圖表示等。組件的生產(chǎn)建立在嚴格的標準之上,具有良好的通用性和兼容性,不依賴于特定的開發(fā)語言,可以嵌入通用的開發(fā)環(huán)境(如Visual C+、Delphi、C+ Builder、Visual Basic等)中:各個控件之間,通過可視化的軟件開發(fā)工具集成起來,形成最終的地理信息應(yīng)用系統(tǒng)。與
23、傳統(tǒng)的地理信息系統(tǒng)專門開發(fā)環(huán)境相比,組件式地理信息系統(tǒng)技術(shù)是一種質(zhì)的飛躍。地理信息應(yīng)用系統(tǒng)開發(fā)進入了控件加通用開發(fā)語言的階段。組件式地理信息系統(tǒng)代表著當今地理信息系統(tǒng)發(fā)展的潮流,已成為業(yè)界標準。相對于傳統(tǒng)的地理信息系統(tǒng)開發(fā)環(huán)境,組件式地理信息系統(tǒng)有以下特點。(1)使用組件式地理信息系統(tǒng)可實現(xiàn)高效、無縫的系統(tǒng)集成。地理信息系統(tǒng)組件可直接嵌入通用開發(fā)工具中。地理信息系統(tǒng)組件與用戶和客戶程序之間主要通過屬性、方法和事件進行交互。對于專業(yè)應(yīng)用模型,可實現(xiàn)代碼級控制、組件間協(xié)同工作,可實現(xiàn)高效、無縫的系統(tǒng)集成。(2)空間數(shù)據(jù)的高效存儲與管理。組件式地理信息系統(tǒng)采用關(guān)系數(shù)據(jù)庫管理空間數(shù)據(jù),解決了海量空間數(shù)
24、據(jù)的管理問題和數(shù)據(jù)安全性問題;同時,也為多用戶并發(fā)操作、歷史空間數(shù)據(jù)的管理提供解決方案,使地理信息系統(tǒng)的C/S結(jié)構(gòu)得以真正的實現(xiàn),為B/S結(jié)構(gòu)的發(fā)展奠定了基礎(chǔ)。利用SQL進行空間數(shù)據(jù)與非空間數(shù)據(jù)的操作,大大減少了編程量。目前,Oracle和Informix等廠商都推出了各自的空間數(shù)據(jù)的解決方案,如Oracle Spatial、InformixSpatial Blade。新的技術(shù)極大地提高了數(shù)據(jù)存儲能力和訪問速度,也為地理信息系統(tǒng)的進一步推廣奠定了基礎(chǔ)。(3)組件式地理信息系統(tǒng)在與MIS耦合方面有明顯優(yōu)勢。由于MIS發(fā)展時間較長,許多單位已經(jīng)具有MIS系統(tǒng)。在開發(fā)過程中,用戶往往要求充分利用已有
25、系統(tǒng)中的屬性數(shù)據(jù),因此,地理信息系統(tǒng)平臺與MIS系統(tǒng)的耦合能力非常重要。同時,在企業(yè)的MIS、ERP、CRM等系統(tǒng)開發(fā)中,也可以利用控件技術(shù),將地理信息系統(tǒng)技術(shù)融入其中,從而更加有效地實現(xiàn)資源共享。(4)良好的擴展性。組件式地理信息系統(tǒng)利用ActiveX組件技術(shù),將功能進行適當分割,將傳統(tǒng)集成式地理信息系統(tǒng)的功能分配在相對獨立而又具有有機聯(lián)系的標準ActiveX組件上,降低了開發(fā)難度,縮短了開發(fā)時間,并減少了開發(fā)成本。用戶在購買開發(fā)平臺軟件時,可根據(jù)自己的需要靈活采購所需要的地理信息系統(tǒng)組件。(5)易于開發(fā)。組件式地理信息系統(tǒng)功能齊備,開發(fā)者可以很快掌握地理信息系統(tǒng)的開發(fā)方法,充分利用已有的經(jīng)
26、驗和技能,開發(fā)出功能強大、界面友好的地理信息應(yīng)用系統(tǒng)。3)組件式地理信息系統(tǒng)開發(fā)方法組件式地理信息系統(tǒng)開發(fā)方法是把地理信息系統(tǒng)的功能模塊劃分為多個控件,每個控件完成不同的功能,各個地理信息系統(tǒng)控件之間,以及地理信息系統(tǒng)控件與其他非地理信息系統(tǒng)控件之間,通過可視化的軟件開發(fā)工具,根據(jù)需要把實現(xiàn)各種功能的“積木”搭建起來,實現(xiàn)地理信息系統(tǒng)的各種功能以及應(yīng)用系統(tǒng)。在這種新的軟件開發(fā)方式下,軟件公司以開發(fā)組件為主要業(yè)務(wù),提供規(guī)格化的組件。系統(tǒng)集成商則匯總組件,組合成能完成不同功能的組件,將自己的核心技術(shù)組件化。正是這兩者之間分工的涇渭分明,使得軟件行業(yè)工業(yè)化逐漸走向成功。4)GIS組件的應(yīng)用及評價軟件
27、的組件化已成為軟件技術(shù)發(fā)展的潮流。基于DCOM的ActiveX組件實現(xiàn),已成為軟件工業(yè)的一種標準。伴隨著未來其他非Windows平臺對ActiveX的支持,ActiveX組件化的GIS軟件系統(tǒng)將對GIS的體系結(jié)構(gòu)和GIS將來的應(yīng)用前景產(chǎn)生深遠影響。 雖然采用GIS組件在開發(fā)上有許多優(yōu)勢,但是不可避免的也存在一些功能上的欠缺和技術(shù)上的不成熟,主要包括以下幾個方面。(1)與專業(yè)的GIS客戶端軟件相比,采用組件技術(shù)不可避免地帶來效率上的相對低下,這在訪問超大空間數(shù)據(jù)(如大數(shù)據(jù)量的遙感圖像)的時候表現(xiàn)得尤為明顯。(2)支持的空間數(shù)據(jù)量有限。(3)支持的功能有限,由于是組件,只覆蓋了GIS系統(tǒng)的部分功能
28、,于是對于特殊領(lǐng)域,它就顯得無能為力。(4)系統(tǒng)的可靠性、容錯性有待提高。DCOM的一大特點是:開發(fā)及使用過程中必須時刻注意Windows系統(tǒng)OLE系統(tǒng)注冊表的正確性。1.2.4 三種開發(fā)方式的比較由于獨立開發(fā)難度太大,單純二次開發(fā)受地理信息系統(tǒng)工具提供的編程語言的限制差強人意,因此,結(jié)合地理信息系統(tǒng)工具軟件與當今可視化開發(fā)語言的集成二次開發(fā)方式也就成為地理信息系統(tǒng)應(yīng)用開發(fā)的主流。它的優(yōu)點是既可以充分利用地理信息系統(tǒng)工具軟件完備的空間數(shù)據(jù)庫管理、分析功能,又可以利用其他面向?qū)ο罂梢暬_發(fā)語言具有的高效、方便等編程優(yōu)點,集二者之所長,不僅能大大地提高應(yīng)用系統(tǒng)的開發(fā)效率,而且使用可視化軟件開發(fā)工具
29、開發(fā)出來的應(yīng)用程序具有更好的外觀效果,更強大的數(shù)據(jù)庫功能,可靠性好,易于移植,便于維護,尤其是利用地理信息系統(tǒng)組件進行集成開發(fā),更能表現(xiàn)出這些優(yōu)勢。當然,在進行地理信息系統(tǒng)設(shè)計時,具體選用哪種方法,則需要考慮系統(tǒng)本身的性質(zhì)和特點,以及設(shè)計者自身的具體情況來確定。一般來說,對于一些大型的地理信息系統(tǒng)開發(fā)項目,如一個地區(qū)的綜合信息管理系統(tǒng)等,因為其圖形平臺、容量和可靠性等各方面的要求,一般宜于選擇已經(jīng)成熟的地理信息系統(tǒng)開發(fā)工具來組織開發(fā)。對于一些小型的地理信息系統(tǒng),特別是一些以數(shù)據(jù)管理、決策研究和輔助設(shè)計等具體應(yīng)用為主的系統(tǒng),或者是在某個行業(yè)中需要推廣使用的實用系統(tǒng),因為這些系統(tǒng)對矢量圖形平臺要求
30、不是太高,開發(fā)的重點在于地理信息系統(tǒng)技術(shù)的實際功能,因此,可考慮采用 Visual Basic、Visual C+等開發(fā)語言來組織系統(tǒng)的開發(fā),進而開發(fā)出具有自主版權(quán)的軟件產(chǎn)品。1.3 地理信息系統(tǒng)工程開發(fā)過程地理信息系統(tǒng)工程是一個系統(tǒng)工程,其開發(fā)周期較長,涉及多個學科領(lǐng)域,包含內(nèi)容也十分廣泛。為了使地理信息系統(tǒng)達到預期目標,就必須針對地理信息系統(tǒng)的特點,根據(jù)軟件工程的思想,采用科學的開發(fā)步驟和技術(shù),對系統(tǒng)建立的全過程進行控制與協(xié)調(diào)。地理信息系統(tǒng)工程開發(fā)步驟可分為系統(tǒng)分析、系統(tǒng)設(shè)計、系統(tǒng)實施和系統(tǒng)維護與評價。1.3.1 系統(tǒng)分析系統(tǒng)分析的基本思想是從系統(tǒng)觀點出發(fā),通過對事物進行分析與綜合,找出各
31、種可行的方案,為系統(tǒng)設(shè)計提出依據(jù),系統(tǒng)分析階段也稱為系統(tǒng)邏輯設(shè)計階段。所謂邏輯設(shè)計,就是建立系統(tǒng)的邏輯模型,在邏輯上規(guī)定新系統(tǒng)的功能而不涉及具體的物理實現(xiàn),也就是解決“系統(tǒng)干些什么”而不是“系統(tǒng)如何去干”的問題。系統(tǒng)分析的任務(wù)是對系統(tǒng)用戶進行需求調(diào)查,對選定的對象進行初步調(diào)查研究和可行性分析,在明確系統(tǒng)目標的基礎(chǔ)上,開發(fā)對系統(tǒng)的深入調(diào)查研究和分析,提出新系統(tǒng)的結(jié)構(gòu)方案,并形成新系統(tǒng)的模型。系統(tǒng)分析是使設(shè)計達到合理、優(yōu)化的重要步驟。這個階段的工作深入與否,直接影響到將來的設(shè)計質(zhì)量和實用性,因此必須給予高度的重視。一般的,系統(tǒng)分析包括用戶需求分析和可行性分析兩方面內(nèi)容。1. 用戶需求分析用戶需求分
32、析是對用戶需求情況的調(diào)查和分析,它是地理信息系統(tǒng)設(shè)計的基礎(chǔ)。通過與系統(tǒng)用戶進行書面或口頭交流,將得到的信息根據(jù)設(shè)計要求整理后,即得到對系統(tǒng)的概略描述。對用戶需求情況的調(diào)查和分析內(nèi)容主要包括以下內(nèi)容。(1)用戶的范圍、領(lǐng)域、類型、數(shù)量、人力狀況和經(jīng)濟基礎(chǔ)等。(2)舊系統(tǒng)的處理方法。(3)用戶要求新系統(tǒng)產(chǎn)生的結(jié)果和可以獲得資料與數(shù)據(jù)的程度。(4)用戶對應(yīng)用界面和程序接口的要求。(5)潛在的用戶以及新系統(tǒng)的潛力。2. 可行性分析可行性分析是在對用戶需求分析的基礎(chǔ)上,根據(jù)社會、經(jīng)濟和技術(shù)條件確定系統(tǒng)開發(fā)的必要性和可能性。通常需要考慮的因素有效益問題、經(jīng)費問題、進度預測、技術(shù)水平、有關(guān)部門和用戶的支持程
33、度。1.3.2 系統(tǒng)設(shè)計系統(tǒng)設(shè)計也稱物理設(shè)計,其根本任務(wù)是將系統(tǒng)分析階段提出的邏輯模型轉(zhuǎn)化為相應(yīng)的物理模型。該階段的工作直接在系統(tǒng)分析的基礎(chǔ)上進行。系統(tǒng)設(shè)計是地理信息系統(tǒng)整個研制工作的核心,不但要完成邏輯模型所規(guī)定的任務(wù),而且要使所設(shè)計的系統(tǒng)達到優(yōu)化,因此始終要考慮系統(tǒng)的高效性、安全性、強壯性和方 便性。系統(tǒng)設(shè)計包含總體設(shè)計與系統(tǒng)詳細設(shè)計兩部分內(nèi)容。1. 總體設(shè)計總體設(shè)計又稱功能設(shè)計或概念設(shè)計,其主要任務(wù)是根據(jù)系統(tǒng)研制的目標來規(guī)劃系統(tǒng)的規(guī)模和確定系統(tǒng)的各個組成部分,并說明它們在整個系統(tǒng)中的作用與相互關(guān)系,此外還涉及系統(tǒng)的軟硬件配置、采用的技術(shù)規(guī)范等,以保證系統(tǒng)總體目標的實現(xiàn)。具體來說有以下幾方
34、面的內(nèi)容。(1)確定系統(tǒng)目標。(2)確定系統(tǒng)規(guī)模以及系統(tǒng)功能與組成。(3)確定系統(tǒng)各個模塊之間的相互關(guān)系描述及接口設(shè)計。(4)軟、硬件配置設(shè)計。(5)數(shù)據(jù)源評估及數(shù)據(jù)庫建庫方案。(6)人員培訓。(7)經(jīng)費預算。(8)成本及收益分析。2. 系統(tǒng)詳細設(shè)計系統(tǒng)詳細設(shè)計是在總體設(shè)計的基礎(chǔ)上,使設(shè)計進一步細化、具體化、物理化,主要包括以下幾方面的設(shè)計。1)模塊設(shè)計從新系統(tǒng)的數(shù)據(jù)流程圖和數(shù)據(jù)字典出發(fā),采用功能獨立、規(guī)模適當?shù)哪K化設(shè)計方法,把系統(tǒng)規(guī)劃分為若干個大模塊,而每個大模塊進一步細分成為若干個小模塊,并標出它們之間的聯(lián)系、各模塊的內(nèi)容和功能,以及它們的算法和流程。2)數(shù)據(jù)分級分類與編碼設(shè)計數(shù)據(jù)分級分
35、類與編碼設(shè)計是將現(xiàn)實世界的模型轉(zhuǎn)換為地理信息系統(tǒng)能夠接受的數(shù)據(jù)編碼模型。不僅要從系統(tǒng)的角度出發(fā),使編碼滿足系統(tǒng)內(nèi)部信息交換和數(shù)據(jù)共享要求,還要考慮編碼的通用性和擴展性。編碼設(shè)計應(yīng)遵循以下原則:如國家或上級部門已有指定的統(tǒng)一編碼,則應(yīng)采用統(tǒng)一編碼格式,如沒有標準的,則盡量靠攏相近標準,遵循統(tǒng)一性、系統(tǒng)邏輯性、準確性的原則。3)數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫是地理信息系統(tǒng)的核心組成部分,根據(jù)不同的應(yīng)用,數(shù)據(jù)庫會有不同的數(shù)據(jù)組織形式。對于給定的應(yīng)用環(huán)境,應(yīng)確定最優(yōu)數(shù)據(jù)模型與處理模式的邏輯設(shè)計、數(shù)據(jù)庫存儲結(jié)構(gòu)與存取方法的物理設(shè)計,并建立反映現(xiàn)實世界信息之間相互聯(lián)系、滿足用戶要求、能被數(shù)據(jù)庫管理系統(tǒng)(DBMS)接受的
36、數(shù)據(jù)庫。4)輸入輸出設(shè)計地理信息系統(tǒng)的運行結(jié)果只有通過輸出才能為用戶所使用,因此輸出的內(nèi)容與格式是用戶最為關(guān)心的問題。常用的輸出方式有屏幕顯示、打印文件和軟磁盤復制。從系統(tǒng)開發(fā)的角度看,輸出決定了輸入,即輸入設(shè)計必須根據(jù)輸出的要求來確定。常用的輸入方式有鍵盤錄入、軟盤復制和數(shù)字化。5)人機接口設(shè)計人機接口設(shè)計是計算機系統(tǒng)和用戶通過屏幕進行一系列詢問與回答的交互過程,其任務(wù)是確定上述交互的方法、內(nèi)容與具體格式。人機交互的方式通常有菜單法、填表法和 YES/NO回答法,設(shè)計中應(yīng)注意系統(tǒng)響應(yīng)時間的長短,對話要清楚簡單,不應(yīng)有二義性,同時還要做到操作方便和對用戶友善。6)安全性設(shè)計安全性設(shè)計包括操作權(quán)
37、限分級、用戶分級口令的設(shè)置、病毒防治以及系統(tǒng)備份與恢復功能設(shè)計。1.3.3 系統(tǒng)實施系統(tǒng)實施是地理信息系統(tǒng)建設(shè)付諸實現(xiàn)的實踐階段,在這一階段中,需要投入大量的人力、物力,并占用較長的時間,使用部門將發(fā)生組織機構(gòu)、人員、設(shè)備、工作方法和工作流程的重大變革。系統(tǒng)實施是系統(tǒng)開發(fā)的重要階段。系統(tǒng)實施的主要任務(wù)是把系統(tǒng)設(shè)計的成果付諸實施,實現(xiàn)能夠使用的實際系統(tǒng)。系統(tǒng)實施工作內(nèi)容和流程主要包括以下內(nèi)容。1軟、硬件配置及準備根據(jù)系統(tǒng)設(shè)計,配置、安裝、調(diào)試相應(yīng)的硬件及所需的基礎(chǔ)軟件與其他軟件。由于系統(tǒng)設(shè)計時擬定的硬件方案往往落后于硬件的發(fā)展,此時應(yīng)根據(jù)原方案,在同等價格的基礎(chǔ)上,選擇性能指標較優(yōu)的硬件。2人員
38、培訓人員培訓包括技術(shù)培訓、管理培訓、使用者的培訓,應(yīng)根據(jù)系統(tǒng)的進展分階段進行。3數(shù)據(jù)采集和數(shù)據(jù)庫建立數(shù)據(jù)采集是整個系統(tǒng)中工作量最大的一項工作,應(yīng)嚴格按照系統(tǒng)設(shè)計中的規(guī)定進行。并以采集到的數(shù)據(jù)為基礎(chǔ)來建立數(shù)據(jù)庫。4模塊程序的編制、調(diào)試和運行模塊程序的編制應(yīng)符合軟件工程化思想,盡量做到標準化與通用化,并具有相應(yīng)的容錯性和穩(wěn)定性,所編寫的程序應(yīng)按照統(tǒng)一的格式編寫程序說明,一般內(nèi)容為名稱、功能、使用算法、方法概要、硬件要求、使用語言、使用的外部數(shù)據(jù)、源程序語句數(shù)和設(shè)計人使用說明等。調(diào)試運行時,可采用兩套數(shù)據(jù):一套是模擬數(shù)據(jù);另一套是實際數(shù)據(jù)。5系統(tǒng)測試系統(tǒng)測試是保證系統(tǒng)開發(fā)成功的重要一環(huán)。系統(tǒng)測試的主
39、要內(nèi)容有單元測試、組裝測試、確認測試、系統(tǒng)測試和驗收測試。在對系統(tǒng)進行測試之前,應(yīng)制定相應(yīng)的測試計劃,測試計劃至少應(yīng)包括測試目的、內(nèi)容、條件、用例、進度、步驟和評價準則;在測試時應(yīng)詳細記錄測試過程,測試記錄應(yīng)作為測試文檔歸檔保存;測試完成后,必須根據(jù)軟件測試記錄完成測試分析報告。6系統(tǒng)文檔材料的建立文檔材料是系統(tǒng)實踐過程的文字總結(jié),包括用戶手冊、使用參考手冊、系統(tǒng)測試說明、程序設(shè)計說明和測試報告等。7系統(tǒng)驗收在文檔建好和系統(tǒng)測試階段完成,各項功能、各項指標均達到設(shè)計標準后,應(yīng)匯集用戶方領(lǐng)導、技術(shù)負責人、系統(tǒng)設(shè)計員和程序員等對系統(tǒng)測試各項逐一進行驗收,完成后由用戶技術(shù)負責人簽字驗收。1.3.4
40、系統(tǒng)維護與評價系統(tǒng)的維護與評價階段是系統(tǒng)生命周期的最后一個階段,但也是很重要的一個階段。新系統(tǒng)是否有長久的生命力取決于此階段的工作。1. 系統(tǒng)維護地理信息系統(tǒng)是一個復雜的大系統(tǒng),受系統(tǒng)內(nèi)、外環(huán)境的變化和各種人為的、機器的因素的影響,要求系統(tǒng)能夠適應(yīng)這種變化并不斷地完善,這就要進行系統(tǒng)維護。系統(tǒng)維護是指在運行過程中,為適應(yīng)環(huán)境和其他因素的各種變化,保證系統(tǒng)正常工作而采取的一切活動。系統(tǒng)維護的主要內(nèi)容有:糾錯;完善和適應(yīng)性維護;硬件設(shè)備的維護;數(shù)據(jù)更新。2. 系統(tǒng)評價系統(tǒng)評價是指對系統(tǒng)應(yīng)達到的功能、特性和效果等指標,從技術(shù)和經(jīng)濟兩個方面對所設(shè)計的地理信息系統(tǒng)的優(yōu)劣進行評定。具體來說,主要是對以下各
41、項內(nèi)容進行考查。1)系統(tǒng)效率地理信息系統(tǒng)的各種職能指標、技術(shù)指標和經(jīng)濟指標均是系統(tǒng)效率的反映。例如,系統(tǒng)能否及時地向用戶提供有用信息,所提供信息的地理精度和幾何精度如何,系統(tǒng)操作是否方便,系統(tǒng)出錯概率以及資源的使用效率如何等。2)系統(tǒng)可靠性系統(tǒng)可靠性是指系統(tǒng)在運行時的穩(wěn)定性。正常情況下系統(tǒng)應(yīng)該很少發(fā)生事故,即便發(fā)生了事故也應(yīng)該能很快修復。此外,系統(tǒng)可靠性還包括系統(tǒng)有關(guān)的數(shù)據(jù)文件和程序是否妥善保存,以及系統(tǒng)是否具有后備保障等。3)系統(tǒng)的可維護性系統(tǒng)的可維護性指的是地理信息系統(tǒng)的維護人員理解、糾正和改進系統(tǒng)的難易程度。通常可以從3個方面來衡量:可理解性,是指系統(tǒng)結(jié)構(gòu)、界面功能和內(nèi)部過程能夠被理解的
42、程度;可測試性,診斷和測試的容易程度取決于易于理解的程度;可修改性,與系統(tǒng)設(shè)計時所確定的設(shè)計原則有直接關(guān)系。4)系統(tǒng)的可擴展性任何系統(tǒng)的開發(fā)都是從簡單到復雜不斷求精和完善的過程,特別是地理信息系統(tǒng)常常是從清查和匯集空間數(shù)據(jù)開始,然后逐步演化到從管理到?jīng)Q策的高級階段。因此,在地理信息系統(tǒng)建成后,要使在現(xiàn)行系統(tǒng)上不做大改動或不影響整個系統(tǒng)結(jié)構(gòu),就可在現(xiàn)行系統(tǒng)上增加功能模塊,這就必須在系統(tǒng)設(shè)計時留有接口,否則,當數(shù)據(jù)量增加或功能增加時,系統(tǒng)就要推翻重建。5)系統(tǒng)的可移植性可移植性是評價地理信息系統(tǒng)的一項重要指標。一個有生命力的地理信息系統(tǒng)軟件,不但在于它自身結(jié)構(gòu)的合理性,而且在于它對環(huán)境的適應(yīng)能力,
43、即它不僅能在一臺機器上使用,還能在其他型號的設(shè)備上使用。要做到這一點,系統(tǒng)必須要按國家規(guī)范標準進行設(shè)計,包括數(shù)據(jù)表示、專業(yè)分類、編碼標準、記錄格式和控制基礎(chǔ)等,都需要按照統(tǒng)一的規(guī)定,以保證軟件和數(shù)據(jù)的匹配、交換和共享。6)系統(tǒng)的效益系統(tǒng)的效益包括經(jīng)濟效益和社會效益兩個方面。目前地理信息系統(tǒng)還處于發(fā)展階段,由它產(chǎn)生的經(jīng)濟效益相對而言不太顯著,故可著重從社會效益上進行評價,主要包括信息共享的效果、數(shù)據(jù)采集和處理的自動化水平、地學綜合智能化程度、系統(tǒng)決策的定量化和科學化、系統(tǒng)應(yīng)用的模型化、系統(tǒng)解決新課題的能力、勞動強度的減輕、工作時間的縮短和技術(shù)的提高等??偟膩碚f,地理信息系統(tǒng)的經(jīng)濟效益需要較長的時
44、間才能逐漸體現(xiàn)出來,隨著時間的推移,其經(jīng)濟效益將不斷提高。1.4 本 章 小 結(jié)本章首先介紹了地理信息系統(tǒng)工程的開發(fā)方法:結(jié)構(gòu)化設(shè)計方法、“自底向上”方法、快速原型法、面向?qū)ο笤O(shè)計方法和企業(yè)系統(tǒng)規(guī)劃法,對每種方法的思想、設(shè)計步驟和特點進行了闡述;然后介紹了地理信息系統(tǒng)常見的3種開發(fā)方式:獨立開發(fā)、單純二次開發(fā)和集成二次開發(fā),闡述了每種開發(fā)方式的特點,并對這3種開發(fā)方式進行了比較,開發(fā)人員具體選擇何種開發(fā)方式需要根據(jù)系統(tǒng)本身的性質(zhì)和特點,以及設(shè)計者自身的具體情況來確定;本章最后介紹了地理信息系統(tǒng)工程的開發(fā)過程,主要包含系統(tǒng)分析、系統(tǒng)設(shè)計、系統(tǒng)實施和系統(tǒng)的維護與評價等階段,對每一階段要完成的工作內(nèi)
45、容和流程進行了具體闡述。通過本章的學習,讀者應(yīng)該對地理信息系統(tǒng)的開發(fā)有個基本的認識。第2章 基于MapObjects的GIS 開發(fā)技術(shù)與應(yīng)用案例MapObjects是由美國的ESRI(Environment System Research Institute,環(huán)境系統(tǒng)研究所)開發(fā),是比較流行的組件式GIS開發(fā)軟件。MapObjects是一組地圖軟件的組件(ActiveX控件),使用它可以在普通的編程語言(如VB、VC、Delphi)上實現(xiàn)主要的地理信息系統(tǒng)(其中主要的就是電子地圖的功能)的功能。MapObjects簡稱MO。通過MapObjects開發(fā)者可以靈活地建立適合用戶的信息系統(tǒng)。本章首
46、先對MapObjects的組成、功能及特點進行了簡單介紹,然后結(jié)合示例代碼介紹了如何使用MapObjects中的主要對象,最后通過一個案例展示了如何通過MapObjects構(gòu)建一個應(yīng)用系統(tǒng)。2.1 MapObjects概述2.1.1 MapObjects的組成MapObjects包括一個ActiveX 控件(OCX),也就是Map控件,還包括45個 ActiveX自動對象。可用于符合IT行業(yè)標準的Windows編程環(huán)境。 在MapObjects組件中,主要包含以下對象。(1)數(shù)據(jù)訪問對象:存取地圖數(shù)據(jù)庫的一組對象。(2)地圖顯示對象:用來顯示電子地圖及符號化地圖要素的一組控件(Map、Lege
47、nd、ScaleBar)和對象。(3)幾何對象:點、線、面等用來與圖層要素進行互操作的對象。(4)投影對象:為地圖或圖層定義坐標系統(tǒng)及進行投影變換的一組對象。(5)地址匹配對象:可快速定位街道位置。(6)實用對象:包含一個特殊的字符串對象Strings。 提示:通過ActiveX 自動操作接口,提供給其他應(yīng)用程序或編程工具使用的一種對象即為ActiveX 自動對象。2.1.2 MapObjects的特點和功能1. MapObjects的特點(1)MapObjects是可以允許用戶向應(yīng)用程序中添加地圖的制圖軟件控件集合。開發(fā)人員可以將MapObjects 與其他軟件提供商提供的組件綁定,比如繪圖
48、、多媒體及數(shù)據(jù)庫對象。開發(fā)人員可以根據(jù)最終用戶的需求,開發(fā)出應(yīng)用程序,有選擇地實現(xiàn)他們所要求的功能。(2)MapObjects可以在多種符合工業(yè)標準的開發(fā)環(huán)境下使用,比如 Visual Basic、PowerBuilder、Visual C+、.NET開發(fā)平臺等。 MapObjects 可以直接嵌入到這些開發(fā)環(huán)境中使用,允許開發(fā)者快捷地創(chuàng)建應(yīng)用程序。(3)MapObjects不適用于最終用戶,它是為程序開發(fā)者設(shè)計的。程序開發(fā)者可以利用MapObjects開發(fā)應(yīng)用程序,并把這些程序提供給下一級用戶使用。(4)MapObjects可以運行于Windows 98、Windows NT 4.0或更高版
49、本的操作系統(tǒng)中。2. MapObjects的功能MapObjects提供的主要功能簡述如下。(1)顯示一張包含多個圖層的地圖。(2)放大、縮小、漫游地圖。(3)生成幾何圖形,如點、線、圓、多邊形。(4)為圖層中的要素添加注釋。(5)識別地圖上被選中的要素(點、線、面)。(6)通過線、矩形、多邊形和圓等來選擇要素。(7)選取距某參照物一定距離范圍內(nèi)的要素。(8)通過SQL語句來選擇要素。(9)對選擇的要素進行統(tǒng)計。(10)查詢與更新被選擇的要素的屬性數(shù)據(jù)。(11)制作專題地圖。(12)根據(jù)字段的值標注圖層要素。(13)顯示從航片或衛(wèi)星圖片上獲取的圖像。(14)動態(tài)顯示實時或時間系列數(shù)據(jù)。(15)
50、通過輸入地址在地圖上定位。(16)將數(shù)據(jù)投影到不同的坐標系下。2.1.3 MapObjects支持的數(shù)據(jù)源MapObjects支持Shape文件、圖像文件、數(shù)據(jù)表或通過ESRI的專用數(shù)據(jù)庫引擎連接的專用數(shù)據(jù)表。Shape文件是地圖數(shù)據(jù)的矢量格式,圖像文件是指柵格圖像或航空及衛(wèi)星的畸變圖像的糾正照片,數(shù)據(jù)表是可用ODBC驅(qū)動加載的任意格式的數(shù)據(jù)表文件。專用數(shù)據(jù)庫是網(wǎng)絡(luò)上通過ESRI專用數(shù)據(jù)庫引擎連接的空間數(shù)據(jù)庫服務(wù)器上的數(shù)據(jù)。Shape 文件適用于中小型地圖數(shù)據(jù)。而大型數(shù)據(jù)(省級、國家級海量數(shù)據(jù)),用戶則需要使用專用數(shù)據(jù)庫。 提示:用MapObjects編寫的軟件是可伸縮的。開始時開發(fā)者可使用S
51、hape文件,當用戶需要與大型數(shù)據(jù)庫連接時,僅需修改打開數(shù)據(jù)源的幾行代碼,就可以實現(xiàn)到專用數(shù)據(jù)庫數(shù)據(jù)源的遷移。1. Shape 文件Shape文件是ESRI提供的存儲地理數(shù)據(jù)的矢量格式,其坐標系是笛卡兒坐標。圖層中每一個地理要素的幾何形狀是以一組矢量坐標(X,Y)的形式存儲。其屬性存放在與Shape 文件相連的dBASE的數(shù)據(jù)表中,并通過唯一的標識進行關(guān)聯(lián)。Shape 文件是一種開放的GIS數(shù)據(jù)格式,如果開發(fā)者想編寫程序直接讀寫Shape 文件,可以從ESRI網(wǎng)站上下載ArcView Shape (1998)文件白皮書。每一個Shape 文件存儲某一種類型的地理要素(點、線段或多邊形),每一個
52、要素相當于數(shù)據(jù)表中的一行記錄。一個Shape 數(shù)據(jù)至少由以下3個文件組成。(1)主文件(*.shp):包含描述地理要素幾何形狀的數(shù)據(jù)。(2)索引文件(*.shx):包含數(shù)據(jù)的索引。(3)數(shù)據(jù)庫文件(*.dbf):包含地理要素的屬性,用戶可以修改字段的定義。2. 圖像(Image)文件可以通過MapObjects編寫應(yīng)用程序來顯示多種圖像文件。在地圖中圖像多來自航空照片和衛(wèi)星圖像。圖像文件依靠帶有灰度值或色標的一組像元來表示各種信息,這些像元無屬性連接,其坐標系統(tǒng)與Shape 文件不同。在ArcView、ArcGIS中,通過對圖像文件進行地理配準,可以使圖像數(shù)據(jù)精確地與具有大地坐標的Shape數(shù)
53、據(jù)集成在一起。MapObjects或其他ESRI軟件是用World文件來配準圖像的,如表2-1和圖2-1所示。表2-1 MapObjects支持的圖像文件格式名 稱描 述擴展名World文件擴展名BMPWindows位圖圖像*.bmp*.bpwTIFFTagImage文件*.tif*.tfwSUNSun柵格文件*.sun*.snwERDASERDAS的LAN/GIS文件*.gis*.gswIMPELLIMPELL位圖圖像*.rls*.rlwBIL按照行序列存儲的文件*.bil*.blw續(xù)表名 稱描 述擴展名World文件擴展名BIP按照像元點序列存儲的文件*.bip*.bpwBSQ按照波段序列
54、存儲的文件*.bsq*.bqw圖2-1 配準圖像示意圖3. 數(shù)據(jù)表 在基于MapObjects編寫的應(yīng)用程序中,通過ODBC(開放數(shù)據(jù)庫連接)驅(qū)動程序,可以訪問外部的數(shù)據(jù)表,它們可以是多種格式的,如Access、SQL Server、Oracle 等。4. 空間數(shù)據(jù)庫引擎(SDE)如果用戶采用大規(guī)模地圖數(shù)據(jù)組來組織工作,建議考慮使用空間數(shù)據(jù)引擎(SDE),這是一種高性能空間數(shù)據(jù)庫服務(wù)器。通過SDE,空間數(shù)據(jù)可集中存放于空間數(shù)據(jù)庫服務(wù)器上。用戶的SDE應(yīng)用程序可基于UNIX或Windows環(huán)境編寫,SDE提供軟件開發(fā)和空間數(shù)據(jù)管理能力。2.2 MapObjects程序設(shè)計入門本節(jié)將介紹如何基于M
55、apObjects建立開發(fā)環(huán)境,并通過示例說明了構(gòu)建一個簡單系統(tǒng)的過程。2.2.1 建立開發(fā)環(huán)境為了基于MapObjects進行二次開發(fā),首先必須安裝和加載MapObjects,下面將介紹如何進行開發(fā)環(huán)境的建立。1. 安裝MapObjects 從ESRI網(wǎng)站上下載的MapObjects安裝程序包括3個部分,可以依次運行以下3個安裝程序進行安裝。(1)Mo24Eval_Only.exe:安裝MapObjects主程序。(2)Mo24Samples.exe:安裝MapObjects自帶的例子。(3)Mo24Data.exe:安裝例子所需要數(shù)據(jù)。安裝完成后,可依次選擇“開始”|“程序”|
56、ESRI命令打開MapObjects 2.4程序組,如圖2-2所示。圖2-2 安裝完成后打開MapObjects程序組2. 加載MapObjects控件可以通過以下步驟把MapObjects控件加載到Visual Basic 6.0的開發(fā)環(huán)境中。(1)啟動Visual Basic 6.0,在出現(xiàn)的向?qū)е羞x擇新建工程(標準 EXE)。 (2)在工具欄上右擊(工具欄位于Visual Basic 6.0窗口的左邊),在彈出的快捷菜單中選擇“部件”命令。 (3)在彈出的“部件”對話框中選中ESRI MapObjects 2.4復選框,然后單擊“確定”按鈕,如圖2-3所示。圖2-3 在“部件”對話框中選中ESRI MapObjects 2.4復選框(4)在Visual Basic 6.0的工具箱上選中剛才加載的MapObjects地圖控件,并放置到Form窗體上,調(diào)整Map控件的大小及位置。3. 如何獲取幫助MapObjects具有在線幫助系統(tǒng),幫助系統(tǒng)中包括MapObjects每一對象的屬性、方法和事件,以及常量的詳細說明。大多數(shù)幫助的主題下都有一小段程序例子,它可在Visual Basic 6.0下執(zhí)行。以下是使用例子的操作步驟:(1)在幫助的主題下單擊例子。(2)打開一新Visual Basic工程并加上一個地圖控件。(3)當窗體是活動狀態(tài)時按F7鍵
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 四川傳媒學院《古代文論與中學語文》2023-2024學年第二學期期末試卷
- 河海大學《影視分鏡頭與腳本設(shè)計》2023-2024學年第二學期期末試卷
- 湖北省黃石市陽新縣2023-2024學年八年級下學期期末質(zhì)量檢測英語試題(含答案)
- 初中英語七年級下冊統(tǒng)編教案 七下 Unit 8 Welcome to the unit
- 河北省滄州市任丘市2023-2024學年八年級下學期期末教學質(zhì)量評估道德與法治試卷(含答案)
- 2025年輔警招聘考試綜合提升試卷及答案詳解(必刷)
- (2025)輔警招聘考試試題庫及答案詳解(網(wǎng)校專用)
- 2022年2月馬鞍山市直機關(guān)遴選公務(wù)員面試真題附詳細解析
- 2025年行政執(zhí)法基礎(chǔ)知識綜合練習題及完整答案詳解
- 2024年甘肅陜煤集團韓城煤礦招聘真題附答案詳解(奪分金卷)
- 內(nèi)鏡護理安全管理制度
- 數(shù)理統(tǒng)計課件:三大分布和分位數(shù)
- 湖北省武漢市漢陽區(qū)2024-2025學年七年級上學期期末檢測英語試卷(含答案無聽力原文及音頻)
- 《硬科技早期投資-項目評估指南》
- 《國軍標風險》課件
- 鄭州鐵路局招聘筆試沖刺題2025
- (更新版)國家開放大學電大??啤稒C械設(shè)計基礎(chǔ)》機考網(wǎng)考形考網(wǎng)絡(luò)題庫及答案
- 廣西河池市(2024年-2025年小學六年級語文)部編版小升初模擬(下學期)試卷及答案
- 2025年監(jiān)理合同延期補充協(xié)議-變更條款與費用結(jié)算3篇
- 2024-2030年中國再生鉛行業(yè)十三五需求及發(fā)展規(guī)劃分析報告
- 2024-2030年中國電鍍工藝商業(yè)計劃書
評論
0/150
提交評論