?前言
作為一門21世紀(jì)的新型學(xué)科,隨著計算機的快速發(fā)展,GIS的應(yīng)用滲透在人們生活的每個角落,提高人們的生活質(zhì)量,給人們帶來方便使人們的生活已經(jīng)離不開GIS。GIS的發(fā)展無疑是各位的關(guān)注焦點。當(dāng)然隨著云計算,互聯(lián)網(wǎng)+等等一些技術(shù)的提出,我們知道地理信息產(chǎn)業(yè)將會迎來自己的最高峰。文中會從數(shù)據(jù)的標(biāo)準(zhǔn)化,3S的集成,網(wǎng)絡(luò)GIS和移動GIS4個方面來論述GIS未來的發(fā)展趨勢。本文將對GIS 目前的發(fā)展以及研究動向進行概述 ,并針對 GIS 軟件的開發(fā)從兩個方面進行了重點論述 ,并對目前主流的開發(fā)方法進行了比較詳細(xì)的對比。
gis概述分析
隨著信息技術(shù)的高速發(fā)展 ,許多以前屬于專有領(lǐng)域的應(yīng)用項目也逐漸可以發(fā)展為滿足普通用戶需要的產(chǎn)品?;诘乩硇畔⑾到y(tǒng)的發(fā)展就是一例。
在以往人們的印象中 ,地理信息系統(tǒng)似乎只是用來為某些特種行業(yè)服務(wù)的 ,如:水力水電系統(tǒng) ,城市規(guī)劃管理系統(tǒng) , 管道規(guī)劃以及軍事項目等。如今 ,GIS 信息技術(shù)已經(jīng)具備了滲入到人們的日常生活中的條件。通過個人 PC 機 , 移動電話 , 個人手持助理( PDA) 來獲取當(dāng)?shù)氐牡乩硇畔?,以及結(jié)合 GPS全球定位系統(tǒng)為用戶提供導(dǎo)航 ,位置查詢等服務(wù)。用戶群體的增加也為基于 GIS 的系統(tǒng)開發(fā)方式的多樣化 ,個性化提出了更高的要求。下面筆者將對目前較為流行的開發(fā)方法分別進行分析。
1、利用 VC + + 開發(fā) GIS 系統(tǒng)
目前國際,國內(nèi)比較流行的一些 GIS 系統(tǒng)專業(yè)開發(fā)工具很多都是用 C + + 完成的 ,但在時間 ,人力有限的條件下 , 我們很難開發(fā)出象 Mapinfo ,ArcView 等這樣功能比較完善的軟件 ,但應(yīng)用 VC+ + 開發(fā)以信息管理 ,決策服務(wù)及設(shè)計為主的 GIS應(yīng)用系統(tǒng)時 ,也具有良好的使用性和可操作性。特別是目前存在利用 GIS 系統(tǒng)來完善 M IS , CAD ,ERP ,CRM 等系統(tǒng)的功能而不是為了能夠精確的管理圖紙 ,管理海量數(shù)據(jù)。因此采用 VC + + 開發(fā)也可以開發(fā)出滿足要求的使用系統(tǒng) ,并在靈活性、可操性、系統(tǒng)自主版權(quán)等方面具有無可比擬的優(yōu)點。用 VC + + 開發(fā)最基本的 GIS 系統(tǒng)需要包含如下幾個部分: 管理空間坐標(biāo)數(shù)據(jù)的矢量圖形系統(tǒng) ,管理特征數(shù)據(jù)的數(shù)據(jù)庫管理系統(tǒng) ,以及實現(xiàn)矢量圖形系統(tǒng)與數(shù)據(jù)庫系統(tǒng)雙向連接的連接系統(tǒng)。一些 GIS 系統(tǒng)專業(yè)開發(fā)工具 ,如下面我們將要提到的 Map Info 等 ,也是用 C + + 通過如上的思路 ,在矢量圖形系統(tǒng)上開發(fā)完成的。
下面將對以上幾個部分的開發(fā)思路進行詳細(xì)介紹。
1 .1 相對完整的矢量圖形系統(tǒng)的開發(fā)
一個基本的矢量圖形系統(tǒng)一般需要如下功能:
①較完善的圖形元素。包括處理點、直線、圓、連接直線、多邊形區(qū)域、標(biāo)注文本等圖形元素的能力 ,并具備處理圖形塊的能力。
②具備基本的圖形輸入輸出功能。包括鼠標(biāo)交互繪制功能 ,圖形數(shù)據(jù)交互輸入等功能。根據(jù)具體的情況需要具有數(shù)字化儀輸入、與其他圖形系統(tǒng)的數(shù)據(jù)接口等功能 ,還有從打印或繪圖設(shè)備輸出圖形的能力。
③完善的圖形操作功能。包括:圖形的放縮、移動 ,對象查詢等各種操作功能。
④包括圖層、顏色、線型等的設(shè)置功能。⑤有較大的存儲容量。⑥有較強的容錯能力和可恢復(fù)性。
1. 2 開發(fā)與圖形系統(tǒng)配套的數(shù)據(jù)庫管理系統(tǒng)
數(shù)據(jù)庫管理系統(tǒng)是 GIS 系統(tǒng)重要的組成部分 ,用來管理 GIS 系統(tǒng)中各種性質(zhì)數(shù)據(jù)。最常用的開發(fā)數(shù)據(jù)庫管理系統(tǒng)的方法是使用 ODBC 。
ODBC 作為一種開放的數(shù)據(jù)庫標(biāo)準(zhǔn) ,可以使用各種數(shù)據(jù)庫系統(tǒng)(如 SQL Server 、Oracle 、Access 等) 的數(shù)據(jù)庫文件作為數(shù)據(jù)源 ,使用 SQL 語言作為操作和查詢語句 , 按照統(tǒng)一的方法來實現(xiàn)數(shù)據(jù)庫管理系統(tǒng)。結(jié)合 GIS 系統(tǒng) ,一個基本的數(shù)據(jù)庫管理系統(tǒng)需要提供以下的操作功能:
①數(shù)據(jù)瀏覽。
②數(shù)據(jù)編輯。對數(shù)據(jù)表進行增加記錄、修改記錄、刪除記錄等操作 ,即可以任意修改數(shù)據(jù)表的內(nèi)容。
③數(shù)據(jù)查詢功能。能夠提供操作界面 ,任意組織數(shù)據(jù)表的過濾條件 ,對數(shù)據(jù)表進行查詢操作。
④排序。能夠組織排序字段 ,對數(shù)據(jù)表進行多字段和可選順序的排序操作。
其次 ,是建立矢量圖形系統(tǒng)與數(shù)據(jù)庫管理系統(tǒng)的連接。所謂建立連接關(guān)系 ,就是把矢量圖形系統(tǒng)的圖形元素與數(shù)據(jù)庫管理系統(tǒng)的數(shù)據(jù)庫記錄或者數(shù)據(jù)庫視圖之間建立連接 ,把性質(zhì)數(shù)據(jù)賦給矢量圖形元素。對于一個比較完善的 GIS 系統(tǒng)來說 , 這種連接必須具有以下的特點: 連接的雙向性、連接的多項性、連接的穩(wěn)定性。
最后在建立了矢量圖形系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)的連接后 ,就可以通過對矢量圖形系統(tǒng)的圖形元素的操作(選中、圖形元素間的拓?fù)潢P(guān)系等) 來得到或操作與之連接的性質(zhì)數(shù)據(jù) ,實現(xiàn)空間信息統(tǒng)計和分析等功能。即以建立起來的 GIS 系統(tǒng)框架為基礎(chǔ) ,開發(fā)實現(xiàn)使用系統(tǒng)的具體功能。
2、利用目前流行的 GIS 軟件平臺進行開發(fā)
目前 GIS 軟件 ,國際上比較流行的是:Arc Info系列 ,Map Info 系列 , SuperMap 系列產(chǎn)品等。國產(chǎn)GIS 軟件中 ,以中國地質(zhì)大學(xué)的 MA P GIS 為代表。這些平臺都提供了用戶進行二次開發(fā)的工具和接口 ,通過二次開發(fā)亦可滿足很多客戶的不同需求 ,并且開發(fā)簡便 ,迅速見效。這里我們不對其二次開發(fā)的方法進行深究 ,而是就目前 GIS 軟件與當(dāng)前軟件技術(shù)的發(fā)展方向相結(jié)合而朝組件式的開發(fā)方向進行探討。這種趨勢即由過去廠家提供了全部系統(tǒng)或者具有二次開發(fā)功能的軟件過渡到提供組件由用戶自己再開發(fā)的方向上來。GIS 技術(shù)的發(fā)展 ,在軟件模式上經(jīng)歷了功能模塊、包式軟件、核心式軟件 , 從而發(fā)展到組件式 GIS 和 Web GIS 的過程。傳統(tǒng) GIS 雖然在功能上已經(jīng)比較成熟 , 但是由于這些系統(tǒng)多是基于十多年前的軟件技術(shù)開發(fā)的 ,屬于獨立封閉的系統(tǒng)。同時 , GIS 軟件變得日益龐大 ,用戶難以掌握 , 費用昂貴 , 阻礙了 GIS 的普及和應(yīng)用。組件式 GIS 的出現(xiàn)為傳統(tǒng) GIS 面臨的多種問題提供了全新的解決思路。組件式 GIS的基本思想是把 GIS 的各大功能模塊劃分為幾個控件 ,每個控件完成不同的功能。各個 GIS 控件之間 ,以及 GIS 控件與其它非 GIS 控件之間 ,可以方便地通過可視化的軟件開發(fā)工具集成起來 ,形成最終的 GIS 應(yīng)用??丶缤欢迅魇礁鳂拥姆e木 ,他們分別實現(xiàn)不同的功能(包括 GIS 和非 GIS功能) ,根據(jù)需要把實現(xiàn)各種功能的 ”積木”搭建起來 ,就構(gòu)成應(yīng)用系統(tǒng)。
目前應(yī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)的標(biāo)準(zhǔn)控件 , 因而能支持絕大多數(shù)標(biāo)準(zhǔn)的可視化開發(fā)環(huán)境如 Visual C + + 、Visual Basic 、Delp hi 、PowerBuilder 等。編程人員在開發(fā)過程中可以選用自己最熟悉的開發(fā)語言 ,輕松地將地圖功能嵌入到應(yīng)用中 ,并且可以脫離 Map Info 的軟件平臺運行。利用 Map X ,能夠簡單快速地在企業(yè)應(yīng)用中嵌入地圖化功能 ,增強企業(yè)應(yīng)用的空間分析能力 , 實現(xiàn)企業(yè)應(yīng)用的增值。
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 就是通過這種地理空間拓?fù)浣Y(jié)構(gòu)建立地理圖形的空間數(shù)據(jù)模型并定義各空間數(shù)據(jù)之間的關(guān)系 ,從而實現(xiàn)地理圖形和數(shù)據(jù)庫的結(jié)合。
從橫向分析 ,Map X 采取的空間數(shù)據(jù)結(jié)構(gòu)是基于空間實體和空間索引相結(jié)合的一種結(jié)構(gòu)??臻g實體是地理圖形的抽象模型 ,主要包括點、線、面三種類型。任何點、線、面實體都可以用直角坐標(biāo)點 x 、y 來表示。點可以表示成一組坐標(biāo) ( x ,y) ,對于線和面 , 則均被表示成多組坐標(biāo) ( x1 , y1 ; x2 , y2 ;xn ,yn) 。空間索引是查詢空間實體的一種機制 ,
通過空間索引 ,就能夠以盡量快的速度查詢到給定坐標(biāo)范圍內(nèi)的空間實體及其所對應(yīng)的數(shù)據(jù)。
從縱向分析 ,Map X 的空間數(shù)據(jù)結(jié)構(gòu)是一種分層存放的結(jié)構(gòu)。用戶可以通過圖形分層技術(shù) ,根據(jù)自己的需求或一定的標(biāo)準(zhǔn)對各種空間實體進行分層組合 ,將一張地圖分成不同圖層。采用這種分層存放的結(jié)構(gòu) ,可以提高圖形的搜索速度 ,便于各種不同數(shù)據(jù)的靈活調(diào)用、更新和管理。
2 .2 Map X 的基本屬性
有
放大、縮小、漫游等增加、移走、設(shè)置當(dāng)前層
有
1. 通過鼠標(biāo)選取特征
2. 通過 SQL 查找特征
3. 通過空間操作選取特征
有
有
有
較弱
有
較強
無
有
VC、VB 、PowerBuilder 、
Delphi 、Lotus Notes 等
·圖( Map)
每個 Map 對象主要包括 Dataset s 、Layers 、An2notations 三個對象集合。
Map 對象有一些主要的屬性 ,如 Zoom 用來設(shè)置放大級別(在地圖上顯示的大小) , Rotation 控制地圖的旋轉(zhuǎn)角度 , CenterX 和 Center Y 用于設(shè)置 x和 y 的坐標(biāo)系 , 這要取決于地圖的投影。Map 對象的許多屬性本身又是一個對象 ,比如說一幅地圖由多個圖層組成 ,則在一個 Map 對象中存在一個單獨的 layers 集合 ,其中包含所有圖層的信息。·圖層(Layers)在 Map X 中 ,每張單獨的地圖都被表示成單獨的一個圖層 , 所有的圖層存儲在 layers 集合中。Layers 集合由 Layer 對象組成 ,按順序編號為 0 到n 。Layer 對象由 feat ures 對象組成 ,feat ures 對象又是由 Feat ure 對象組成 ,對應(yīng)于地圖中的點、線、區(qū)域或符號。
最上面一層為 Layers (1) ,Layers (2) 位于 Lay2ers (1) 的下面 , 以次類推。最下面的圖層最先繪制 ,最上面的圖層最后繪制。在應(yīng)用程序中 ,合理地安排好每層在 Layers 中的順序是至關(guān)重要的。比如說有兩個圖層 ,一層為點 ,一層為區(qū)域 ,則應(yīng)將點層放到區(qū)域?qū)拥纳戏?,否則區(qū)域會將點覆蓋。另外 ,在進行地圖選擇操作時 ,根據(jù)要求調(diào)整圖層的順序也是十分重要的。Map X 中的選擇工具總是從
順序也是十分重要的。Map X 中的選擇工具總是從可選擇圖層中的最上層開始選擇 ,如果在地圖上的同一位置存在多個位于不同層的地圖對象 ,其結(jié)果是很難精確地選擇到目標(biāo)對象。因此 ,最好將被選擇圖層提到最上層顯示。
.地理集( GeoSet s)
GeoSet 是在 GeoManager 中建立好的。 GST 文件 ,類似 Map Info 中的 WorkSpace 概念 ,是圖層及其設(shè)置的集合 ,控制程序中顯示的地圖。也可以在運行階段設(shè)置 GeoSet , 此時將導(dǎo)致已經(jīng)加載的所有圖層和 DataSet 被刪除而由 GeoSet 中定義的圖層所代替。如果單純地想刪除所有圖層 , 只需給GeoSet 賦一個空字符串即可??梢允褂?GeoSet Manager 程序來管理 GeoSet 文件 ( 3 。 GST) 。默
認(rèn)情況下。 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ù)庫和對應(yīng)區(qū)域的數(shù)字地圖綁定 ,可以在地圖上形象地顯示出不同區(qū)域銷售情況的趨勢以及和小區(qū)周邊環(huán)境的關(guān)系。建立地圖信息與屬性數(shù)據(jù)之間聯(lián)系的過程稱之為自動綁定或自動匹配。要實現(xiàn)這一過程 , 必須首先將地圖在 GeoDictionary 中注冊。
·標(biāo)注(Annotations)
Annotations 集合提供了操縱地圖中文字和符
號的簡單方法。Annotations 位于所有其它圖層的上方并且不與任何數(shù)據(jù)連接 ,類似于 Map Info 中的透明圖層。
Annotations 包括以下主要的屬性與方法: AddSymbol 在 Annotations 中增加符號 , 符號類型使用 Map 。 Default Style 定義; Add Text 在 Annota2tions 中增加文本; Remove 刪除特定的標(biāo)注; 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 屬性設(shè)置標(biāo)注的字符串。
·可創(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ā)任務(wù)的需要來選擇開發(fā)方式 ,筆者利用 Map X 和 GPS 技術(shù)實現(xiàn)的公交調(diào)度指揮系統(tǒng) ,不僅開發(fā)周期短 ,而且系統(tǒng)運行穩(wěn)定 ,并具有很好的可擴充性。隨著通信技術(shù)以及 GIS 技術(shù)的發(fā)展以及市場需求不斷增加 ,該開發(fā)方式將會給我們帶來更大的利益。毫無疑問 ,組件式 GIS 技術(shù)將給整個 GIS 技術(shù)體系和應(yīng)用模式帶來巨大的影響。
結(jié)束語
從GIS的出現(xiàn),到現(xiàn)在短短幾十年,它已經(jīng)融入到了這個世界,改變了人們的生活方式。它作為信息產(chǎn)業(yè)的一個新人,卻在里面扮演著重要的角色,正以前所未有的速度發(fā)展。我覺得我們應(yīng)該吸取當(dāng)前GIS中的優(yōu)點,結(jié)合當(dāng)代的新興技術(shù),更好的促進GIS的發(fā)展。GIS已經(jīng)深入到了各行各業(yè),隨著GIS越來越好的發(fā)展,它將會在我們的生活中扮演著越來越重要的角色,同時我們也會越來越依賴它??墒鞘澜鐓s因為它增加更多未知與可能,而這正是當(dāng)代社會所需要的。新的地理信息時代,我們將會迎來更多挑戰(zhàn),新的地理信息時代,世界會變得更好。
評論