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