2、利用目前流行的 GIS 軟件平臺進行開發(fā)
目前 GIS 軟件 ,國際上比較流行的是:Arc Info系列 ,Map Info 系列 , SuperMap 系列產(chǎn)品等。國產(chǎn)GIS 軟件中 ,以中國地質(zhì)大學的 MA P GIS 為代表。這些平臺都提供了用戶進行二次開發(fā)的工具和接口 ,通過二次開發(fā)亦可滿足很多客戶的不同需求 ,并且開發(fā)簡便 ,迅速見效。這里我們不對其二次開發(fā)的方法進行深究 ,而是就目前 GIS 軟件與當前軟件技術的發(fā)展方向相結(jié)合而朝組件式的開發(fā)方向進行探討。這種趨勢即由過去廠家提供了全部系統(tǒng)或者具有二次開發(fā)功能的軟件過渡到提供組件由用戶自己再開發(fā)的方向上來。GIS 技術的發(fā)展 ,在軟件模式上經(jīng)歷了功能模塊、包式軟件、核心式軟件 , 從而發(fā)展到組件式 GIS 和 Web GIS 的過程。傳統(tǒng) GIS 雖然在功能上已經(jīng)比較成熟 , 但是由于這些系統(tǒng)多是基于十多年前的軟件技術開發(fā)的 ,屬于獨立封閉的系統(tǒng)。同時 , GIS 軟件變得日益龐大 ,用戶難以掌握 , 費用昂貴 , 阻礙了 GIS 的普及和應用。組件式 GIS 的出現(xiàn)為傳統(tǒng) GIS 面臨的多種問題提供了全新的解決思路。組件式 GIS的基本思想是把 GIS 的各大功能模塊劃分為幾個控件 ,每個控件完成不同的功能。各個 GIS 控件之間 ,以及 GIS 控件與其它非 GIS 控件之間 ,可以方便地通過可視化的軟件開發(fā)工具集成起來 ,形成最終的 GIS 應用。控件如同一堆各式各樣的積木 ,他們分別實現(xiàn)不同的功能(包括 GIS 和非 GIS功能) ,根據(jù)需要把實現(xiàn)各種功能的 ”積木”搭建起來 ,就構(gòu)成應用系統(tǒng)。
目前應用比較廣泛的是:
Map Info 開發(fā)的 Map X , 以及 ER IS 公司開發(fā)的MapObject s 。下面將重點對利用 Map Info 公司開發(fā)的 Map X 進行 GIS 軟件開發(fā)特點以及主要過程進行分析并與 MapObject s 進行比較。
Map X 是 Map Info 公司向用戶提供的具有強大地圖分析功能的 ActiveX 控件產(chǎn)品。由于它是一種基于 Windows 操作系統(tǒng)的標準控件 , 因而能支持絕大多數(shù)標準的可視化開發(fā)環(huán)境如 Visual C + + 、Visual Basic 、Delp hi 、PowerBuilder 等。編程人員在開發(fā)過程中可以選用自己最熟悉的開發(fā)語言 ,輕松地將地圖功能嵌入到應用中 ,并且可以脫離 Map Info 的軟件平臺運行。利用 Map X ,能夠簡單快速地在企業(yè)應用中嵌入地圖化功能 ,增強企業(yè)應用的空間分析能力 , 實現(xiàn)企業(yè)應用的增值。
Map X 提供了各種工具、屬性和方法 ,熟練的運用這些工具、屬性、方法通過編程可以滿足不同開發(fā)需求。
要快速 ,深入的理解 Map X ,我們可以從下面兩個方面入手 ,一方面是 Map X 的空間數(shù)據(jù)結(jié)構(gòu) ,另一方面是 Map X 的基本屬性。理解了這兩方面 ,又具備一定的編程能力 ,結(jié)合 Map X 的開發(fā)手冊 ,就能開發(fā)出所需要的 GIS 運用系統(tǒng)。
(1) Map X 的空間數(shù)據(jù)結(jié)構(gòu)
空間數(shù)據(jù)結(jié)構(gòu)是 GIS 的基石,GIS 就是通過這種地理空間拓撲結(jié)構(gòu)建立地理圖形的空間數(shù)據(jù)模型并定義各空間數(shù)據(jù)之間的關系 ,從而實現(xiàn)地理圖形和數(shù)據(jù)庫的結(jié)合。
從橫向分析 ,Map X 采取的空間數(shù)據(jù)結(jié)構(gòu)是基于空間實體和空間索引相結(jié)合的一種結(jié)構(gòu)??臻g實體是地理圖形的抽象模型 ,主要包括點、線、面三種類型。任何點、線、面實體都可以用直角坐標點 x 、y 來表示。點可以表示成一組坐標 ( x ,y) ,對于線和面 , 則均被表示成多組坐標 ( x1 , y1 ; x2 , y2 ;xn ,yn) 。空間索引是查詢空間實體的一種機制 ,
通過空間索引 ,就能夠以盡量快的速度查詢到給定坐標范圍內(nèi)的空間實體及其所對應的數(shù)據(jù)。
從縱向分析 ,Map X 的空間數(shù)據(jù)結(jié)構(gòu)是一種分層存放的結(jié)構(gòu)。用戶可以通過圖形分層技術 ,根據(jù)自己的需求或一定的標準對各種空間實體進行分層組合 ,將一張地圖分成不同圖層。采用這種分層存放的結(jié)構(gòu) ,可以提高圖形的搜索速度 ,便于各種不同數(shù)據(jù)的靈活調(diào)用、更新和管理。
2 .2 Map X 的基本屬性
有
放大、縮小、漫游等增加、移走、設置當前層
有
1. 通過鼠標選取特征
2. 通過 SQL 查找特征
3. 通過空間操作選取特征
有
有
有
較弱
有
較強
無
有
VC、VB 、PowerBuilder 、
Delphi 、Lotus Notes 等
·圖( Map)
每個 Map 對象主要包括 Dataset s 、Layers 、An2notations 三個對象集合。
Map 對象有一些主要的屬性 ,如 Zoom 用來設置放大級別(在地圖上顯示的大?。?, Rotation 控制地圖的旋轉(zhuǎn)角度 , CenterX 和 Center Y 用于設置 x和 y 的坐標系 , 這要取決于地圖的投影。Map 對象的許多屬性本身又是一個對象 ,比如說一幅地圖由多個圖層組成 ,則在一個 Map 對象中存在一個單獨的 layers 集合 ,其中包含所有圖層的信息?!D層(Layers)在 Map X 中 ,每張單獨的地圖都被表示成單獨的一個圖層 , 所有的圖層存儲在 layers 集合中。Layers 集合由 Layer 對象組成 ,按順序編號為 0 到n 。Layer 對象由 feat ures 對象組成 ,feat ures 對象又是由 Feat ure 對象組成 ,對應于地圖中的點、線、區(qū)域或符號。
最上面一層為 Layers (1) ,Layers (2) 位于 Lay2ers (1) 的下面 , 以次類推。最下面的圖層最先繪制 ,最上面的圖層最后繪制。在應用程序中 ,合理地安排好每層在 Layers 中的順序是至關重要的。比如說有兩個圖層 ,一層為點 ,一層為區(qū)域 ,則應將點層放到區(qū)域?qū)拥纳戏?,否則區(qū)域會將點覆蓋。另外 ,在進行地圖選擇操作時 ,根據(jù)要求調(diào)整圖層的順序也是十分重要的。Map X 中的選擇工具總是從
順序也是十分重要的。Map X 中的選擇工具總是從可選擇圖層中的最上層開始選擇 ,如果在地圖上的同一位置存在多個位于不同層的地圖對象 ,其結(jié)果是很難精確地選擇到目標對象。因此 ,最好將被選擇圖層提到最上層顯示。
.地理集( GeoSet s)
GeoSet 是在 GeoManager 中建立好的。 GST 文件 ,類似 Map Info 中的 WorkSpace 概念 ,是圖層及其設置的集合 ,控制程序中顯示的地圖。也可以在運行階段設置 GeoSet , 此時將導致已經(jīng)加載的所有圖層和 DataSet 被刪除而由 GeoSet 中定義的圖層所代替。如果單純地想刪除所有圖層 , 只需給GeoSet 賦一個空字符串即可。可以使用 GeoSet Manager 程序來管理 GeoSet 文件 ( 3 。 GST) 。默
認情況下。 GST 文件存儲在。 。 。 map x maps 目
錄下 , 可以調(diào)用 GeoDictionary Manager 程序進行修改 ,指向用戶程序數(shù)據(jù)所在的位置。
·數(shù)據(jù)集(Dataset s)
Dataset s 用于實現(xiàn)地圖與數(shù)據(jù)的綁定。例如 ,
一家房地產(chǎn)商將其開發(fā)的不同小區(qū)的銷售情況的數(shù)據(jù)庫和對應區(qū)域的數(shù)字地圖綁定 ,可以在地圖上形象地顯示出不同區(qū)域銷售情況的趨勢以及和小區(qū)周邊環(huán)境的關系。建立地圖信息與屬性數(shù)據(jù)之間聯(lián)系的過程稱之為自動綁定或自動匹配。要實現(xiàn)這一過程 , 必須首先將地圖在 GeoDictionary 中注冊。
·標注(Annotations)
Annotations 集合提供了操縱地圖中文字和符
號的簡單方法。Annotations 位于所有其它圖層的上方并且不與任何數(shù)據(jù)連接 ,類似于 Map Info 中的透明圖層。
Annotations 包括以下主要的屬性與方法: AddSymbol 在 Annotations 中增加符號 , 符號類型使用 Map 。 Default Style 定義; Add Text 在 Annota2tions 中增加文本; Remove 刪除特定的標注; Type
取值為 miSymbolAnnotation 或 mi TextAnnotation 。
Annotations 還有一個非常重要的屬性 Grap h2
ic ,其定義為 Grap hic 對象 ,在該對象中包含了符號或文本的樣式、位置等信息 ,即 Grap hic 的 Caption 、Position 、St yle 、X、Y 屬性。如 Annotations 的 Type屬性定義為 mi TextAnnotation ,則可以定義 Grap h2ic 的 Caption 屬性設置標注的字符串。
·可創(chuàng)建對象
在 Map X 對象模型中 ,以下對象是可以被創(chuàng)建的:
Affine Transform , BindLayer , Bit map Symbols , CoordSys , Dat um , Feat ure , Fields , Layer Info , Map , ODBCQuery Info , Part s , Point , Point s , Rectangle , RowValue , RowValues , Style , Variables , Notes2
Query Info ,NotesView Info 。
綜上所述 ,我們可以根據(jù)具體開發(fā)任務的需要來選擇開發(fā)方式 ,筆者利用 Map X 和 GPS 技術實現(xiàn)的公交調(diào)度指揮系統(tǒng) ,不僅開發(fā)周期短 ,而且系統(tǒng)運行穩(wěn)定 ,并具有很好的可擴充性。隨著通信技術以及 GIS 技術的發(fā)展以及市場需求不斷增加 ,該開發(fā)方式將會給我們帶來更大的利益。毫無疑問 ,組件式 GIS 技術將給整個 GIS 技術體系和應用模式帶來巨大的影響。
結(jié)束語
從GIS的出現(xiàn),到現(xiàn)在短短幾十年,它已經(jīng)融入到了這個世界,改變了人們的生活方式。它作為信息產(chǎn)業(yè)的一個新人,卻在里面扮演著重要的角色,正以前所未有的速度發(fā)展。我覺得我們應該吸取當前GIS中的優(yōu)點,結(jié)合當代的新興技術,更好的促進GIS的發(fā)展。GIS已經(jīng)深入到了各行各業(yè),隨著GIS越來越好的發(fā)展,它將會在我們的生活中扮演著越來越重要的角色,同時我們也會越來越依賴它。可是世界卻因為它增加更多未知與可能,而這正是當代社會所需要的。新的地理信息時代,我們將會迎來更多挑戰(zhàn),新的地理信息時代,世界會變得更好。
評論