幾種常用的地理信息軟件比較
地理信息系統(tǒng)是信息科學與信息技術(shù)發(fā)展的一個重要組成部分,是信息高速公路上的節(jié)點和重要基礎設施。作為在信息社會中的一種集地理空間特征和各種統(tǒng)計信息于一體的特殊信息系統(tǒng),地理信息系統(tǒng)已成為政府部門進行科學管理和快速決策時不可或缺的工具。地理信息系統(tǒng)的提出源于二十世紀五十年代,經(jīng)過四十余年的發(fā)展,隨著計算機科學、地理學、制圖學、遙感與攝影測量學、圖形圖像技術(shù)以及數(shù)據(jù)庫技術(shù)的不斷發(fā)展,地理信息系統(tǒng)已經(jīng)成為了一種功能強大、性能完善的計算機系統(tǒng),廣泛應用于規(guī)劃、土地、測繪、建設、環(huán)保、軍事等諸多部門。
自MapInfo與Arc/Info率先進入中國地理信息系統(tǒng)市場以來,國外其它各種GIS軟件(如MGE、MapCAD、Genemap、MicroStation GeoGraphics、Maptitude等)也蜂擁而入,競相強占中國GIS市場。而此時,國產(chǎn)GIS軟件在此危機時刻,在國家和地方有關部門的支持下,也加快了開發(fā)的步伐,并相繼推出了幾種GIS軟件,如武漢測繪科技大學的GeoStar、中國地質(zhì)大學的MapGIS、北京大學的CityStar以及方正集團公司開發(fā)的“方正智繪”軟件等等。無論是國產(chǎn)GIS軟件,還是國外GIS軟件,都必須具有GIS的基本功能,如數(shù)據(jù)接收與處理(包括數(shù)據(jù)校核、坐標變換、投影變換等),數(shù)據(jù)存儲,數(shù)據(jù)庫管理,空間查詢與檢索,空間分析,數(shù)據(jù)輸出等等。下面我將對MapInfo,Arc/Info,Maptitude三種GIS軟件中本人較熟悉的部分作簡要的分析。
1. MapInfo 軟件
在MapInfo的系列產(chǎn)品中,用得最多的是MapInfo Professional 和 MapBasic。
MapInfo Professional 是基于普通PC微機的桌面地圖信息軟件,其主要特點是:
(1) 快速數(shù)據(jù)查詢,高速屏幕刷新,使得用戶界面具有良好的圖形顯示效果;
(2) 集成能力強,能夠根據(jù)數(shù)據(jù)的地理屬性分析信息的應用開發(fā)工具,是功能強大的地圖數(shù)據(jù)組織和顯示軟件包;
(3) 數(shù)據(jù)可視化和數(shù)據(jù)分析能力較強,可以直接訪問多種數(shù)據(jù)庫的數(shù)據(jù),如Oracle, Microsoft Access, Informix, SQL Server, Dbase等;
(4) 專題地圖制作方便,數(shù)據(jù)地圖化方便;
(5) 同時支持16/32位的應用開發(fā),適用于多種計算機操作系統(tǒng),如Windows 3.1,Windows 95, Windows NT,OS/2等;
(6) 完整的Client/Server體系結(jié)構(gòu);
(7) 完善的圖形無縫連接技術(shù);
(8) 支持OLE 2.0標準,使得其它開發(fā)語言如:Visual Basic, Visual C++, PB, Dephi等能運用Integrated Mapping技術(shù)將MapInfo作為OLE對象進行開發(fā)。
MapBasic是基于MapInfo平臺的用戶開發(fā)語言,包括300多條語句和功能。通過MapBasic的二次開發(fā),能夠擴展MapInfo的功能,實現(xiàn)程序的自動操作,而且可以方便地將MapInfo與其它軟件進行集成,其主要特點是:
(1) 由于MapBasic是一種類Basic程序語言,所以使用簡單;
(2) 便于MapInfo界面的改造,功能的擴展與應用的可視化;
(3) 支持OLE Automation和DDE(動態(tài)數(shù)據(jù)交換)技術(shù),易于與其它應用軟件相連接;
(4) 包含嵌入的SQL語句,數(shù)據(jù)查詢、檢索更加方便。
MapInfo和Mapbasic提供了放大、縮小、漫游、選擇、空間實體組合/分割等基本的圖形操作功能;同時MapBasic 可以直接讀取點、線、面等空間實體和屬性數(shù)據(jù)庫,并提供條件分析、統(tǒng)計分析、緩沖區(qū)分析等分析功能。
利用MapInfo進行開發(fā)主要有三種模式:
(1) 以MapInfo作為獨立開發(fā)平臺,利用MapBasic所進行的二次開發(fā)模式;
MapInfo Professional 提供了基本的GIS功能,如數(shù)據(jù)接收功能、建庫功能、圖形 功能、數(shù)據(jù)查詢與檢索功能、專題圖制作功能、簡單分析功能、數(shù)據(jù)輸出功能等。而MapBasic是建立在MapInfo平臺上的用戶開發(fā)語言,是針對MapInfo的二次開發(fā),完善MapInfo的功能和靈活地進行各種所需功能的開發(fā)。
(2) 將MapInfo作為OLE對象的開發(fā)模式;
盡管MapInfo Professional和MapBasic具有強大的功能,可以實現(xiàn)一般的GIS功能,但是隨著用戶需求的不斷變化,其功能畢竟還是有限的。對于任何GIS軟件平臺而言,為了能夠維持其生命力,就必須要求該平臺具有可擴展能力,即支持OLE標準。MapInfo有效地解決了這個問題,允許其它開發(fā)語言將它作為OLE對象來進行開發(fā)。 #p#page_title#e#
(3) 利用基于ActiveX的MapX控件所進行的開發(fā)模式。
GIS軟件的組件化是GIS軟件發(fā)展的方向之一,即:利用ActiveX控件方式進行GIS系統(tǒng)的二次開發(fā)。MapX是MapInfo基于ActiveX技術(shù)的可編程控件,它集成了MapInfo幾乎所有的功能,如地圖顯示,圖形放大、縮小、選擇、漫游等,制作專題地圖,圖層控制,ODBC功能,地理查詢等等。
在GIS系統(tǒng)中,數(shù)據(jù)的工作量占整個系統(tǒng)開發(fā)的70-80%,所有GIS功能均須基于地理數(shù)據(jù),由此可見合理的地理數(shù)據(jù)模型是GIS系統(tǒng)生存的基礎。MapInfo Professional作為桌面地圖系統(tǒng)的典范,其空間數(shù)據(jù)結(jié)構(gòu)是不具備拓撲關系的,因此相對部門級或企業(yè)級地理信息系統(tǒng)而言,其空間分析能力較弱。但是它對硬件平臺,軟件環(huán)境,軟件工具,要求較低,同時使用簡單,價格也較低。MapInfo是通過建立空間實體模型和空間索引來定義其空間數(shù)據(jù)模型的,利用Table來存儲空間數(shù)據(jù)和屬性數(shù)據(jù)??臻g實體主要由點、線、面三種基本類型組成,采用面向?qū)ο蟮姆椒ǎ糠N實體對象均維護其本身的所有信息。空間索引是利用R-Tree技術(shù)來實現(xiàn)的。采用這種
=FD據(jù)模型可以簡化數(shù)據(jù)管理的復雜性,解決部分的空間查詢與分析功能,但仍有些空間分析功能如路徑分析軟件本身無法實現(xiàn),須借助于外部開發(fā)語言(如Visual Basic, Visual C++,Dephi等)來實現(xiàn)。
MapInfo的數(shù)據(jù)保存在數(shù)據(jù)庫中,主要是兩種數(shù)據(jù)庫:內(nèi)置數(shù)據(jù)庫和通過ODBC連接的外部數(shù)據(jù)庫。它的數(shù)據(jù)庫通過Table的形式進行數(shù)據(jù)的組織和管理,每一個Table可存放若干空間實體及對于每一個空間實體的若干屬性說明。當然也可只存放屬性數(shù)據(jù)。Table嚴格按照關系模式規(guī)范化的要求設計,空間實體在Table表中的存儲不允許重復,以保證空間實體記錄的唯一性。有Table表結(jié)構(gòu),可建立空間實體與屬性數(shù)據(jù)之間的連接關系,從而利用標準SQL來進行查詢和檢索。
2. Arc/Info 軟件
Arc/Info是目前功能最為完善、性能最為穩(wěn)定的專業(yè)地理信息系統(tǒng)軟件平臺之一,也是最龐大的GIS軟件。Arc/Info一般用于部門級和企業(yè)級的大型地理信息系統(tǒng)的開發(fā),而對于桌面級的GIS則主要用ArcView來進行開發(fā)。這兩種軟件相互兼容,可以相互調(diào)用數(shù)據(jù)。下面將簡要列出本人所了解的Arc/Info的主要功能:
(1) 支持多種系統(tǒng)平臺,如Windows NT, UNIX, SUN Solaris, SGI IRIX, IBM AIX等.可方便地調(diào)用各種系統(tǒng)平臺上的數(shù)據(jù)和應用;
(2) 將最廣泛的數(shù)據(jù)源集成到統(tǒng)一的環(huán)境下,如矢量(x, y坐標)地圖數(shù)據(jù)、柵格圖象數(shù)據(jù)、CAD數(shù)據(jù)、聲像數(shù)據(jù)以及大量的DBMS表格數(shù)據(jù);
(3) 地理數(shù)據(jù)和相關數(shù)據(jù)的自動化采集、管理、顯示功能;
(4) 強大的地理空間分析功能。Arc/Info提供了各種分析工具,如:拓撲地理疊置分析、buffer分析、空間與邏輯查詢、臨近性分析等等;
(5) 建立了多種數(shù)據(jù)模型,如水文建模、網(wǎng)絡建模、柵格建模等;
(6) 專業(yè)性和功能性非常強的TIN模塊,可生成、顯示、分析地表模型,同時進行地圖暈暄、模擬飛行動畫、通視分析、剖面提取及工程土方量計算等等;
(7) 提供了柵格分析功能,可進行柵格矢量一體化查詢與疊加顯示;
(8) 開發(fā)了數(shù)據(jù)庫管理模塊,可管理大量的數(shù)據(jù),并能進行工作數(shù)據(jù)的維護和動態(tài)更新;
(9) 高效的圖形顯示功能。Arc/Info開發(fā)了一個圖形加速模塊,可提高圖形顯示的速度。
Arc/Info提供了AML(Arc Macro Language)語言開發(fā)環(huán)境,利用該開發(fā)環(huán)境可非常方便地編制用戶的菜單和功能。AML是一種解釋性的開發(fā)語言,與Maptitude的Caliper Script類似,具有以下特點:
(1) 語法結(jié)構(gòu)簡單,容易掌握,易于開發(fā);
(2) 可采用模塊化的開發(fā)方法進行系統(tǒng)應用軟件的開發(fā);
(3) 支持多種風格的菜單、對話框、工具條的設計與開發(fā);
(4) 提供多線程的調(diào)度和輸入管理。
同時Arc/Info為了克服AML語言難于處理復雜的線程控制以及開發(fā)效率較低,對外部應用的可控制性差等缺陷,又提供了ODE(Open Development Environment)功能。由于ODE是通過編譯來執(zhí)行的,因此可彌補AML語言的不足。 #p#page_title#e#
Arc/Info的開發(fā)模式主要有兩種:
(1) 利用Arc/Info、AML和ODE來進行開發(fā)。
(2) 利用Arc/Info的Active X控件在通常的編程語言開發(fā)環(huán)境中進行開發(fā)。
Arc/Info的基本元素是“ARC”,可由任意多個點構(gòu)成,在其兩端有結(jié)點,并伴有共享該“ARC”的兩個區(qū)域的代碼。同時,還為每個多邊形建立了環(huán)繞其邊界的“ARC”目錄表。在這種數(shù)據(jù)結(jié)構(gòu)中,實際存儲的只是結(jié)點的坐標,而“ARC”和多邊形是通過邏輯關系建立的。這種數(shù)據(jù)結(jié)構(gòu)不僅保存了描述多邊形形狀的幾何信息,而且還建立了多邊形元素(Polygon, Arc, Node)之間的拓撲關系。同時Arc/Info采用Coverage特征來描述地理數(shù)據(jù)。Arc/Info將各種特征屬性保存在相應的Table中。Arc/Info建立Coverage拓撲時,定義拓撲和幾何特征,并且存儲在特征屬性表(FAT)文件中。因此Arc/Info采用的是一種帶有拓撲關系的數(shù)據(jù)模型。在這一點上,Maptitude有點與之類似。
ArcView與MapInfo比較類似,主要體現(xiàn)在以下方面:
(1) 均屬于桌面地理信息系統(tǒng)范疇,開發(fā)方便、簡潔;
(2) 可支持多種空間數(shù)據(jù)格式,并且兩者空間數(shù)據(jù)可以互換;
(3) 空間數(shù)據(jù)不具有拓撲結(jié)構(gòu),需建立索引文件來完成各種空間查詢和分析;
(4) 其它的一些基本的GIS功能兩種軟件都具有,這里就不再詳敘。
當然作為兩種由不同產(chǎn)家開發(fā)的軟件也具有各自的特點,如在數(shù)據(jù)管理模式上,ArcView利用Shape格式來保存無拓撲關系的矢量數(shù)據(jù),而用Table來管理屬性數(shù)據(jù);MapInfo則利用Table來管理所有的數(shù)據(jù);兩者開發(fā)工具不盡相同,ArcView的Avenue是一種面向?qū)ο蟮某绦蛟O計語言,引入了類的概念,雖功能強大,但開發(fā)較難,而MapInfo的MapBasic是一種類Basic程序設計語言,容易掌握,且功能較完善,但是兩種開發(fā)工具均可進行編譯。由于ArcView的許多功能來源于Arc/Info,因此在這里就不再多述。
3
Maptitude軟件
Maptitude的系列軟件中用于各種專題地理信息系統(tǒng)開發(fā)的主要工具是Maptitude軟件平臺和GISDK開發(fā)工具。Maptitude目前已升級到了4.1版本,但由于種種原因,我只試用過3.0版本。該軟件的主要功能有:
(1) 數(shù)據(jù)接收功能強,支持多種GIS數(shù)據(jù)源,如MapInfo, Arc/Info, MGE, CAD等等;
(2) 數(shù)據(jù)查詢快速,方便,能較好地進行數(shù)據(jù)的動態(tài)更新;
(3) 支持ODBC技術(shù),可與多種數(shù)據(jù)庫進行通訊,如:Oracle, Informix, MS Access, SQL Server等等;
(4) 可方便制作各種專題地圖,并通過各種方式輸出;
(5) 支持Windows 3.1, Windows 95 & 98 系統(tǒng),但是3.0版本不支持Windows NT4.0。對于UNIX,OS等操作系統(tǒng)是否支持,目前沒有試驗;
(6) 具有數(shù)據(jù)無縫連接功能;
(7) 支持多媒體。除了支持BMP圖片以及制做可翻轉(zhuǎn)的幻燈片外,尚支持播放音樂和電影的多媒體功能。
(8) 具有快捷而強大的空間分析如buffer分析,最短路徑分析等功能;
(9) 可利用工具自動建立拓撲關系;
(10) 支持OLE和DDE技術(shù),可在通用的開發(fā)語言中將Maptitude作為OLE來調(diào)用,如:Visual Basic, Visual C++, Dephi等。
(11) 數(shù)據(jù)壓縮是Caliper公司引以為榮的專利技術(shù)。在Maptitude中地圖數(shù)據(jù)以壓縮形式存儲,卻可在不解壓的環(huán)境下操作。所占空間小,速度大大提高。
Maptitude提供的開發(fā)工具是GISDK。GISDK是一種解釋性的開發(fā)語言,可利用任何文本編輯器來書寫代碼,Maptitude本身不提供編輯窗口。GISDK由兩部分組成:Caliper Script程序開發(fā)語言和用于應用程序編譯和測試的交互開發(fā)工具。Caliper Script 程序語言是開發(fā)基于Maptitude應用程序的關鍵。該語言功能強大卻使用簡單,既使具有很少程序經(jīng)驗的人都能很快掌握。由于其一組由命令組成的程序流,隱含變量說明,靈活的數(shù)組處理,結(jié)構(gòu)化的函數(shù)調(diào)用等等而使得類似BASIC語言的 GISDK別有特色。Caliper Script可以建立和管理諸如表、地圖、地圖要素、窗口、選擇集以及工具、對話框、工具條等用戶界面。此外, Caliper Script還包含多達 600個函數(shù)的函數(shù)庫。高級函數(shù)調(diào)用充分調(diào)用Maptitude的功能 ,函數(shù)庫包括 DDE信息處理的特色函數(shù)庫,實時應用開發(fā),ODBC目標管理等豐富內(nèi)容。 #p#page_title#e#
GISDK的特點有:
(1) 提供了非常完善的函數(shù),使得開發(fā)較方便;
(2) 可利用任何文本編輯器來書寫程序代碼;
(3) 通過嵌入方式可擴充Maptitude的功能;
(4) 可方便地建立諸如菜單、對話框、工具條等用戶需要的界面。
Maptitude的地理數(shù)據(jù)保存在自帶的數(shù)據(jù)庫(DBF或DAN)或外部數(shù)據(jù)庫中,外部數(shù)據(jù)庫通過ODBC調(diào)用。其空間數(shù)據(jù)由點、線、面組成,采用傳統(tǒng)的GIS拓撲結(jié)構(gòu)建立方法,數(shù)據(jù)以拓撲方式進行存儲。由于其數(shù)據(jù)本身就具有拓撲關系,因此有利于進行各種空間分析,如多邊形疊加分析,最短路徑分析,buffer分析等等。
Maptitude目前的開發(fā)模式主要有兩種:
(1) 利用Maptitude與GISDK來進行開發(fā)。這種方式有利于系統(tǒng)的穩(wěn)定性,但是無法進行系統(tǒng)功能的擴展;
(2) 將Maptitude作為OLE的開發(fā)模式
雖然Maptitude與GISDK具有強大的功能,特別是GISDK的函數(shù)庫包含有多余600個功能函數(shù),但是相對于用戶對系統(tǒng)的要求來說,該功能畢竟還是有限的。因此將Maptitude作為OLE,利用常用的開發(fā)語言如Visual Basic, Visual C++, Delphi等來進行系統(tǒng)開發(fā)。
目前,Maptitude還沒有推出它的Active X控件。但是作為GIS軟件平臺發(fā)展的一種趨勢,Maptitude推出Active X控件也是遲早的事情。