国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于OGR的通用地理數(shù)據(jù)格式轉(zhuǎn)換研究

2012-12-11 07:27:36崔虎平
測(cè)繪通報(bào) 2012年1期
關(guān)鍵詞:數(shù)據(jù)格式數(shù)據(jù)源圖層

崔虎平,江 南

(信息工程大學(xué)地理空間信息學(xué)院,河南鄭州450052)

一、引 言

長(zhǎng)期以來(lái),地理數(shù)據(jù)處理過(guò)程中的數(shù)據(jù)格式轉(zhuǎn)換一直是地理信息系統(tǒng)的研制開發(fā)與應(yīng)用過(guò)程中必不可少的,也是花費(fèi)時(shí)間、經(jīng)費(fèi)比較大的模塊。不同的地理信息系統(tǒng)應(yīng)用程序均需要讀取、轉(zhuǎn)換不同格式的地理數(shù)據(jù),然后進(jìn)行查詢分析。這種處理過(guò)程如圖1所示。

圖1 傳統(tǒng)數(shù)據(jù)格式轉(zhuǎn)換流程

每一個(gè)應(yīng)用程序均需要編寫大量的代碼用于讀取不同的文件格式,進(jìn)行重復(fù)的工作,因此,需要建立一個(gè)統(tǒng)一的數(shù)據(jù)訪問(wèn)接口,使得應(yīng)用軟件的開發(fā)脫離這些瑣碎復(fù)雜的數(shù)據(jù)格式轉(zhuǎn)換。OGR簡(jiǎn)單要素庫(kù)(OGR simple feature library)就是最有效的解決方案之一。

OGR是開源C++代碼庫(kù),可以提供讀取(部分可以寫入)大量的矢量數(shù)據(jù)格式文件,如 ESRI Shape、SDTS、PostGIS、Oracle Spatial、MapInfo mid/mif和TAB文件等格式。隨著開源項(xiàng)目的發(fā)展,OGR目前已作為地理空間數(shù)據(jù)抽象庫(kù)(open geospatial data abstraction library,GDAL)的一部分,GDAL可完成柵格地理數(shù)據(jù)的讀寫轉(zhuǎn)換,柵格數(shù)據(jù)與矢量數(shù)據(jù)處理相結(jié)合,相得益彰,使得GDAL/OGR在許多開源項(xiàng)目中得到了更廣泛的應(yīng)用,如熟悉的 Google Earth、ESRI ArcGIS 9.2+、GRASS、OpenEV、UMN MapServer、Quantum GIS(QGIS)、MapWindow 等十幾個(gè)開源項(xiàng)目。

OGR目前支持的矢量數(shù)據(jù)格式如表1所示。

表1 OGR支持的矢量數(shù)據(jù)格式

其中,是否允許保存為No,表示當(dāng)前只支持讀取該文件格式;而Yes表示既可以讀取此文件格式還可以寫此文件格式。因此為了將某一文件格式(如MapGIS明碼格式)轉(zhuǎn)換為其他文件格式,只要在OGR增加相應(yīng)的讀取該文件格式代碼,即可保存為可建立的文件格式。

本文就是使用OGR提供的矢量數(shù)據(jù)模型,在VC++開發(fā)環(huán)境下,增加讀取MapGIS明碼數(shù)據(jù)文件格式的相關(guān)代碼,實(shí)現(xiàn)由MapGIS明碼數(shù)據(jù)格式轉(zhuǎn)換為其他矢量數(shù)據(jù)格式的功能。其流程如圖2所示。

圖2 基于OGR的數(shù)據(jù)格式轉(zhuǎn)換

二、OGR中數(shù)據(jù)格式驅(qū)動(dòng)的開發(fā)

在OGR中,不同的數(shù)據(jù)格式對(duì)應(yīng)不同的驅(qū)動(dòng)(Driver),OGR統(tǒng)一管理所有支持的驅(qū)動(dòng),使用驅(qū)動(dòng)完成地理數(shù)據(jù)格式的讀取與保存。OGR中類的框架關(guān)系如圖3所示。

圖3 OGR中類的框架關(guān)系

其中,

1)OGRSFDriverRegistrar:負(fù)責(zé)注冊(cè)并統(tǒng)一管理所有驅(qū)動(dòng);

2)OGRSFDriver:對(duì)應(yīng)于某一文件格式,可以實(shí)現(xiàn)打開數(shù)據(jù)源、復(fù)制、刪除等功能;

3)OGRDataSource:表示文件或數(shù)據(jù)庫(kù)的抽象類,由用戶繼承實(shí)現(xiàn),包含一個(gè)或多個(gè)圖層(OGRLayer);

4)OGRLayer:表示數(shù)據(jù)源中要素的抽象類,由用戶繼承實(shí)現(xiàn);

5)OGRSpatialReference:空間參考類;

6)OGRFeature:表示某一幾何要素,包括屬性信息;

7)OGRGeometry:幾何對(duì)象類。

由于OGR是基于OpenGIS簡(jiǎn)單要素?cái)?shù)據(jù)模型建立起來(lái)的,數(shù)據(jù)的類型、方法命名均符合OpenGIS規(guī)范,因此非常容易移植于其他符合OGC規(guī)范的軟件系統(tǒng)中。OGR使用的幾何數(shù)據(jù)對(duì)象關(guān)系如圖4所示。

圖4 OGR中的幾何數(shù)據(jù)對(duì)象關(guān)系

為了讀取新的數(shù)據(jù)格式,主要實(shí)現(xiàn)OGR中以下3個(gè)類的接口:OGRSFDriver、OGRDataSource與OGRLayer。在實(shí)現(xiàn)以上接口以后,使用OGRSFDriverRegistrar類函數(shù)RegisterDriver(new OGRMapGISDriver)將新的驅(qū)動(dòng)增加到OGR中。

三、完成數(shù)據(jù)格式的轉(zhuǎn)換

將新的驅(qū)動(dòng)增加到OGR驅(qū)動(dòng)列表后,就可以使用OGR完成相應(yīng)數(shù)據(jù)格式的讀取功能,使用OGR可以將源數(shù)據(jù)格式轉(zhuǎn)換為驅(qū)動(dòng)列表中可保存的數(shù)據(jù)格式。

使用OGR完成數(shù)據(jù)格式轉(zhuǎn)換的主要流程如圖5所示。

圖5 實(shí)現(xiàn)數(shù)據(jù)格式轉(zhuǎn)換的主要流程

第1步:得到注冊(cè)的驅(qū)動(dòng)。

第2步:根據(jù)指定的驅(qū)動(dòng)名,得到驅(qū)動(dòng)對(duì)象。

第3步:使用驅(qū)動(dòng)打開數(shù)據(jù)文件,得到數(shù)據(jù)源對(duì)象。

第4步:根據(jù)指定的目標(biāo)驅(qū)動(dòng)名,得到目標(biāo)驅(qū)動(dòng)對(duì)象,方法同第2步。

第5步:建立輸出數(shù)據(jù)源。

第6步:根據(jù)源目標(biāo)數(shù)據(jù)中圖層個(gè)數(shù),依次在目標(biāo)數(shù)據(jù)源中建立圖層。

第7步:建立目標(biāo)圖層的屬性結(jié)構(gòu)。

第8步:依次寫入源數(shù)據(jù)集中的要素對(duì)象。

第9步:釋放內(nèi)存。

綜合以上處理過(guò)程,筆者編寫了通用地理數(shù)據(jù)格式轉(zhuǎn)換工具,界面圖6所示。

四、結(jié)束語(yǔ)

矢量地理數(shù)據(jù)格式轉(zhuǎn)換是地理信息系統(tǒng)開發(fā)與應(yīng)用過(guò)程的基礎(chǔ)之一。本文研究了OGR實(shí)現(xiàn)矢量地理數(shù)據(jù)格式轉(zhuǎn)換的原理,并在OGR中編程實(shí)現(xiàn)了MapGIS明碼格式驅(qū)動(dòng)的開發(fā),完成了向其他數(shù)據(jù)格式之間的轉(zhuǎn)換。其重要意義在于數(shù)據(jù)格式之間的轉(zhuǎn)換不再需要大量的商業(yè)軟件來(lái)完成,節(jié)約了大量的軟件購(gòu)置費(fèi)用,同時(shí)軟件的開發(fā)思路對(duì)于其他數(shù)據(jù)格式的轉(zhuǎn)換具有借鑒意義。

仍存在以下不足:

1)由于OGR采用符合OpenGIS的簡(jiǎn)單幾何數(shù)據(jù)模型,因而MapGIS數(shù)據(jù)格式向其他數(shù)據(jù)格式轉(zhuǎn)換時(shí)丟失了其拓?fù)潢P(guān)系。

2)目前完成矢量數(shù)據(jù)轉(zhuǎn)換過(guò)程時(shí)保持空間參考系保持不變,如何在轉(zhuǎn)換過(guò)程中增加地理參考系有待于進(jìn)一步研究。

[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]王家耀.空間信息系統(tǒng)原理[M].北京:科學(xué)出版社,2001.

[4]華一新,吳升,趙軍喜.地理信息系統(tǒng)原理與技術(shù)[M].北京:解放軍出版社,2001.

[5]蘇潔,周東方,岳春生.GPS車輛導(dǎo)航中的實(shí)時(shí)地圖匹配算法[J].測(cè)繪學(xué)報(bào),2001,30(3):252-256.

猜你喜歡
數(shù)據(jù)格式數(shù)據(jù)源圖層
在智能交通系統(tǒng)中PLC數(shù)據(jù)格式轉(zhuǎn)換方法的研究
Web 大數(shù)據(jù)系統(tǒng)數(shù)據(jù)源選擇*
巧用混合圖層 制作抽象動(dòng)感森林
基于不同網(wǎng)絡(luò)數(shù)據(jù)源的期刊評(píng)價(jià)研究
圖層法在地理區(qū)域圖讀圖中的應(yīng)用
基于真值發(fā)現(xiàn)的沖突數(shù)據(jù)源質(zhì)量評(píng)價(jià)算法
論子函數(shù)在C語(yǔ)言數(shù)據(jù)格式輸出中的應(yīng)用
DWG與SHP數(shù)據(jù)格式互轉(zhuǎn)換方法研究——以龍巖規(guī)劃測(cè)繪數(shù)據(jù)為例
淺析“遞層優(yōu)化法”在礦井制圖中的應(yīng)用
河南科技(2014年6期)2014-04-04 08:00:42
分布式異構(gòu)數(shù)據(jù)源標(biāo)準(zhǔn)化查詢?cè)O(shè)計(jì)與實(shí)現(xiàn)
林周县| 谷城县| 利辛县| 郎溪县| 大田县| 恭城| 如皋市| 长宁县| 郑州市| 衡水市| 巨野县| 雷山县| 永济市| 泰宁县| 黄石市| 隆德县| 固原市| 新营市| 安国市| 喀什市| 绥阳县| 东平县| 文安县| 博野县| 永寿县| 阳新县| 卓资县| 隆安县| 繁昌县| 古浪县| 始兴县| 乐亭县| 肇庆市| 平利县| 霍林郭勒市| 鄯善县| 河间市| 铁岭县| 樟树市| 淮阳县| 浠水县|