徐 楊,孫 群,馮克忠,于 樂(lè)
(1.信息工程大學(xué)測(cè)繪學(xué)院,河南鄭州450052;2.測(cè)繪信息中心,北京100088)
基于OGR的交換格式數(shù)據(jù)驅(qū)動(dòng)的設(shè)計(jì)與實(shí)現(xiàn)
徐 楊1,2,孫 群1,馮克忠2,于 樂(lè)2
(1.信息工程大學(xué)測(cè)繪學(xué)院,河南鄭州450052;2.測(cè)繪信息中心,北京100088)
交換格式是測(cè)繪行業(yè)部門(mén)為實(shí)現(xiàn)與其他行業(yè)部門(mén)進(jìn)行信息交換與共享而設(shè)計(jì)的一種明碼文件格式,需要根據(jù)不同的GIS軟件開(kāi)發(fā)不同的處理程序進(jìn)行數(shù)據(jù)處理。針對(duì)這一情況,提出基于OGR庫(kù)開(kāi)發(fā)一個(gè)交換格式數(shù)據(jù)驅(qū)動(dòng),實(shí)現(xiàn)交換格式數(shù)據(jù)與商用GIS數(shù)據(jù)格式之間的自由轉(zhuǎn)換,以提高交換格式數(shù)據(jù)使用的效率,降低數(shù)據(jù)使用成本,擴(kuò)大數(shù)據(jù)使用的范圍與影響。
OGR;OGC;交換格式;BeyonDB
交換格式通常是行業(yè)部門(mén)為了實(shí)現(xiàn)與其他行業(yè)部門(mén)進(jìn)行信息交換或共享而設(shè)計(jì)的一種明碼文件格式,這種交換格式通常在行業(yè)內(nèi)部也有大量的應(yīng)用。本文所指的交換格式為測(cè)繪部門(mén)矢量數(shù)據(jù)供應(yīng)的主要形式,在多個(gè)部門(mén)與單位中有著廣泛的應(yīng)用。它不能夠直接在現(xiàn)有的商用GIS軟件及數(shù)據(jù)分析、應(yīng)用軟件中使用,須首先開(kāi)發(fā)格式轉(zhuǎn)換、導(dǎo)入程序,將交換格式數(shù)據(jù)轉(zhuǎn)換為GIS軟件所支持的數(shù)據(jù)格式,或者錄入到GIS軟件所支持的數(shù)據(jù)庫(kù)系統(tǒng)中,然后才能使用交換格式數(shù)據(jù)。這一方式的主要缺點(diǎn)在于所開(kāi)發(fā)的數(shù)據(jù)轉(zhuǎn)換、入庫(kù)程序具有很強(qiáng)的針對(duì)性,只適用于某一特定的GIS軟件,當(dāng)數(shù)據(jù)應(yīng)用在其他GIS軟件中時(shí),還需要再開(kāi)發(fā)針對(duì)其他GIS軟件的數(shù)據(jù)轉(zhuǎn)換、入庫(kù)程序。而在實(shí)際應(yīng)用中,交換格式數(shù)據(jù)通常會(huì)在多個(gè)GIS軟件平臺(tái)中應(yīng)用。針對(duì)這一情況,本文提出開(kāi)發(fā)一個(gè)基于OGR庫(kù)的交換格式數(shù)據(jù)驅(qū)動(dòng),實(shí)現(xiàn)交換格式與各種商用GIS軟件或數(shù)據(jù)分析應(yīng)用軟件的自由轉(zhuǎn)換,而不需要再進(jìn)行額外的格式轉(zhuǎn)換開(kāi)發(fā)。由于采用這種方式不需要用戶學(xué)習(xí)交換格式,因此降低了數(shù)據(jù)使用的成本,提高了數(shù)據(jù)應(yīng)用的效率,從而擴(kuò)大了交換格式數(shù)據(jù)使用的范圍與影響。
GDAL(geospatial data abstraction library)是一個(gè)基于X/MIT許可協(xié)議的開(kāi)源柵格空間數(shù)據(jù)轉(zhuǎn)換庫(kù)。它利用抽象數(shù)據(jù)模型來(lái)表達(dá)所支持的各種文件格式,并擁有一系列命令行工具用于數(shù)據(jù)轉(zhuǎn)換和處理。OGR是GDAL項(xiàng)目的一個(gè)分支,功能與GDAL類似,只不過(guò)它提供對(duì)矢量數(shù)據(jù)的支持。
有很多著名的GIS產(chǎn)品都使用了GDAL/OGR庫(kù),包括Esri的 ArcGIS、Google Earth和跨平臺(tái)的GRASS GIS系統(tǒng)。利用GDAL/OGR庫(kù),Linux上的地理空間數(shù)據(jù)管理系統(tǒng)可以方便地實(shí)現(xiàn)對(duì)矢量和柵格文件數(shù)據(jù)的支持。
OGR提供了對(duì)多種矢量數(shù)據(jù)格式的讀寫(xiě)支持,包括:Esri Shapefile、S-57、SDTS、PostGIS、Oracle Spatial、MapInfo MID/MIF、MapInfo TAB。
OGR庫(kù)的地理幾何數(shù)據(jù)模型采用的是開(kāi)放地理信息聯(lián)盟(Open Geospatial Consortium,OGC)所制定的簡(jiǎn)單要素模型中對(duì)于幾何模型的設(shè)計(jì),如圖1所示。OGC成立于1994年,是一個(gè)由GIS廠商、計(jì)算機(jī)廠商、數(shù)據(jù)庫(kù)廠商、數(shù)據(jù)集成商、電信公司、數(shù)據(jù)庫(kù)開(kāi)發(fā)商、美國(guó)聯(lián)邦機(jī)構(gòu)、標(biāo)準(zhǔn)組織以及學(xué)術(shù)界等部門(mén)代表組成的公益性行業(yè)協(xié)會(huì),現(xiàn)有包括軟件公司、政府部門(mén)和大專院校在內(nèi)的成員220多個(gè)。其所制定的簡(jiǎn)單要素模型目前已在某種程度上成為數(shù)據(jù)模型設(shè)計(jì)的標(biāo)準(zhǔn),具有很強(qiáng)的通用性和廣泛的適用性。
交換格式的地理幾何數(shù)據(jù)模型設(shè)計(jì)如圖2所示。通過(guò)對(duì)圖1、圖2的比較,可以發(fā)現(xiàn)兩者對(duì)于地理幾何數(shù)據(jù)的定義存在著很大的差異性,這也是地理幾何數(shù)據(jù)轉(zhuǎn)換過(guò)程中需要解決的難點(diǎn)。
圖1 OGC地理幾何數(shù)據(jù)模型
圖2 交換格式地理幾何數(shù)據(jù)模型
兩種幾何數(shù)據(jù)模型定義的主要差異體現(xiàn)在以下兩個(gè)方面。
1.幾何數(shù)據(jù)存儲(chǔ)差異
交換格式對(duì)于點(diǎn)對(duì)象的定義有兩種:entity point為實(shí)體點(diǎn),與 OGR中的 point是一樣的;direction point指的是有向點(diǎn),用于指定地理實(shí)體在屏幕或紙質(zhì)圖上符號(hào)化顯示時(shí)符號(hào)放置的方向,OGR中沒(méi)有對(duì)應(yīng)的有向點(diǎn)定義。
實(shí)體點(diǎn)在坐標(biāo)文件中的存儲(chǔ)方式為“實(shí)體點(diǎn)坐標(biāo)+0 0”;有向點(diǎn)在坐標(biāo)文件中的存儲(chǔ)方式為“定位點(diǎn)坐標(biāo)+方向點(diǎn)坐標(biāo)”。在交換格式數(shù)據(jù)驅(qū)動(dòng)編寫(xiě)過(guò)程中,需要擴(kuò)展OGRFeature的定義,增加方向點(diǎn)坐標(biāo)項(xiàng),以供GIS軟件進(jìn)行符號(hào)化顯示時(shí)使用。
2.環(huán)數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)差異
交換格式中對(duì)于環(huán)狀面中各個(gè)面的順逆時(shí)針?lè)较驔](méi)有要求,只是固定地認(rèn)為第一個(gè)多邊形為外包多邊形,其他都為第一個(gè)多邊形的內(nèi)部多邊形。而OGR庫(kù)通過(guò)順、逆時(shí)針進(jìn)行多邊形類型判斷,如果多邊形組中順時(shí)針或逆時(shí)針多邊形個(gè)數(shù)為1,其余為多個(gè)時(shí),則該多邊形為環(huán)島;否則為復(fù)合多邊形。
因此,在交換格式驅(qū)動(dòng)編寫(xiě)過(guò)程中,須判斷所讀到的第一個(gè)多邊形的方向,并將其余多邊形設(shè)為相逆方向存儲(chǔ)。
交換格式數(shù)據(jù)按要素類分層,每一類要素組成一個(gè)要素層,存儲(chǔ)在一組文件中:以SX文件存儲(chǔ)要素類的屬性信息;以ZB文件存儲(chǔ)要素類的地理信息;以TP文件存儲(chǔ)要素間的拓?fù)湫畔?以MS文件存儲(chǔ)要素類的描述信息。要素類中的所有點(diǎn)、線、面要素存儲(chǔ)在同一文件中,以P、L、A標(biāo)志區(qū)分,在每個(gè)類型標(biāo)志后注明實(shí)際要素個(gè)數(shù)。其大致格式描述如下
OGR庫(kù)則認(rèn)為所操作的數(shù)據(jù)源符合簡(jiǎn)單要素模型規(guī)范要求。一個(gè)數(shù)據(jù)文件只存儲(chǔ)一種幾何類型的數(shù)據(jù),即對(duì)應(yīng)一個(gè)FeatureLayer,其類型可以由FeatureLayer的類型來(lái)獲得,要素個(gè)數(shù)等信息也可以由FeatureLayer的屬性信息來(lái)獲得。其數(shù)據(jù)讀取方式如下
由上可見(jiàn),交換格式地理數(shù)據(jù)組織方式與OGR對(duì)數(shù)據(jù)源的要求不一致:交換格式中每個(gè)要素層所包含的幾何要素為點(diǎn)、線、面3類,即一個(gè)交換格式文件要對(duì)應(yīng)其他格式數(shù)據(jù)的3層;OGR庫(kù)則認(rèn)為一個(gè)要素層中的所有要素都為同一幾何類型,所讀取的數(shù)據(jù)文件結(jié)束即為當(dāng)前幾何類型的要素讀取完畢。因此,要實(shí)現(xiàn)基于OGR的交換格式驅(qū)動(dòng),就必須進(jìn)行判斷,確定當(dāng)前幾何類型的要素讀取是否結(jié)束,而不能單獨(dú)依靠文件結(jié)束標(biāo)志來(lái)判斷當(dāng)前幾何類型要素是否讀取完畢。此外,所編寫(xiě)的交換格式驅(qū)動(dòng)應(yīng)該能夠真正地集成在OGR庫(kù)中,以保證庫(kù)的對(duì)外接口不變,不受OGR庫(kù)版本更新以及接口變動(dòng)的影響。交換格式地理數(shù)據(jù)轉(zhuǎn)換流程如圖3所示。
圖3 交換格式驅(qū)動(dòng)中地理數(shù)據(jù)轉(zhuǎn)換流程
BeyonDB數(shù)據(jù)庫(kù)是面向國(guó)家空間信息基礎(chǔ)設(shè)施建設(shè)的重大需求所研發(fā)的具有自主知識(shí)產(chǎn)權(quán)、企業(yè)級(jí)、跨平臺(tái)、分布式、高安全的地理空間數(shù)據(jù)庫(kù)管理系統(tǒng)平臺(tái)。數(shù)據(jù)庫(kù)能夠在統(tǒng)一的數(shù)據(jù)庫(kù)集成管理平臺(tái)上進(jìn)行空間數(shù)據(jù)、屬性數(shù)據(jù)的一體化管理,對(duì)矢量數(shù)據(jù)、柵格數(shù)據(jù)進(jìn)行一體化空間展現(xiàn)與處理。
基于OGR庫(kù)的交換格式驅(qū)動(dòng)主要就是用來(lái)幫助BeyonDB數(shù)據(jù)庫(kù)實(shí)現(xiàn)對(duì)交換格式數(shù)據(jù)的支持?;诮粨Q格式驅(qū)動(dòng)實(shí)現(xiàn)地理實(shí)體的空間信息轉(zhuǎn)換,通過(guò) BeyonDB.NET Provider和 OpenAPI接口對(duì)BeyonDB中的各個(gè)元數(shù)據(jù)表進(jìn)行操作,很好地設(shè)計(jì)與實(shí)現(xiàn)了BeyonDB對(duì)交換格式的支持(如圖4所示)。
圖4 交換格式入庫(kù)功能的實(shí)現(xiàn)
基于OGR庫(kù)的交換格式驅(qū)動(dòng)通過(guò)對(duì)OGR庫(kù)進(jìn)行擴(kuò)展,實(shí)現(xiàn)了交換格式數(shù)據(jù)與商用GIS數(shù)據(jù)格式之間的轉(zhuǎn)換,而無(wú)需進(jìn)行額外的程序開(kāi)發(fā),減輕了交換格式對(duì)用戶的要求,降低了數(shù)據(jù)使用成本,擴(kuò)展了數(shù)據(jù)使用的領(lǐng)域,提高了數(shù)據(jù)使用的效率與影響。在此基礎(chǔ)上所開(kāi)發(fā)的交換格式數(shù)據(jù)入庫(kù)與提取程序,豐富了BeyonDB數(shù)據(jù)庫(kù)所支持的空間數(shù)據(jù)種類,為BeyonDB在測(cè)繪行業(yè)內(nèi)部的推廣使用打下了堅(jiān)實(shí)的基礎(chǔ)。
[1] 易善楨,李琦,承繼成.空間信息的共享與互操作[J].測(cè)繪通報(bào),2000(8):17-19.
[2] 孫立堅(jiān),朱翊,劉紀(jì)平,等.GIS數(shù)據(jù)交換理論與系統(tǒng)架構(gòu)的研究[J].測(cè)繪通報(bào),2007(9):57-60.
[3] 孔毅,張志強(qiáng),趙崇亮.基于ArcGIS的CAD數(shù)據(jù)入庫(kù)研究[J].測(cè)繪通報(bào),2010(5):58-60.
[4] 陳軍,王東華,商瑤玲,等.國(guó)家1∶50 000數(shù)據(jù)庫(kù)更新工程總體設(shè)計(jì)研究與技術(shù)創(chuàng)新[J].測(cè)繪學(xué)報(bào),2010,39(1):11-14.
[5] Open Geospatial Consortium.OpenGIS Implementation Specification for Geographic Information-Simple feature access-Part 1:Common architecture(V1.2.0)[S].[S.l.]:Open Geospatial Consortium Inc,2006.
[6] Open Geospatial Consortium.OpenGIS Implementation Specification for Geographic Information-Simple feature access-Part 2:SQL option(V1.2.0)[S].[S.l.]:Open Geospatial Consortium Inc,2006.
Design and Implementation of an Interchange Format Driver Based on OGR
XU Yang,SUN Qun,F(xiàn)ENG Kezhong,YU Le
0494-0911(2011)06-0054-03
P208
B
2010-12-14
徐 楊(1979—),男,江蘇鹽城人,博士生,工程師,主要從事地理空間數(shù)據(jù)庫(kù)技術(shù)與應(yīng)用研究。