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