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