亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        多源地理矢量數(shù)據(jù)要素解碼方法研究

        2022-05-09 02:08:22何淼李旺民丁建勛
        城市勘測(cè) 2022年2期
        關(guān)鍵詞:字典解碼矢量

        何淼,李旺民,丁建勛

        (珠海市測(cè)繪院,廣東 珠海 519000)

        1 引 言

        歷史測(cè)繪地理信息數(shù)據(jù)由于多方面原因,采用了異構(gòu)的地理信息生產(chǎn)環(huán)境,存在多語(yǔ)義性、多時(shí)空性和多尺度、獲取手段多源性、存儲(chǔ)格式多樣性、空間基準(zhǔn)不統(tǒng)一等問(wèn)題,導(dǎo)致不同系統(tǒng)之間無(wú)法進(jìn)行有效的互操作,這不僅加大了數(shù)據(jù)生產(chǎn)成本,也給數(shù)據(jù)共享帶來(lái)了困難[1]。目前,地理矢量數(shù)據(jù)要素解碼主流的做法是依賴(lài)AutoCAD、FME、ArcGIS等,均存在過(guò)度依賴(lài)第三方平臺(tái)、兼容性差、低可擴(kuò)展性、特殊要素解碼不完備等缺陷。有必要研究一種不依賴(lài)第三方平臺(tái)的地理信息圖件與數(shù)據(jù)解碼方法,以滿(mǎn)足多源數(shù)據(jù)集成的數(shù)據(jù)訪(fǎng)問(wèn)、共享與格式轉(zhuǎn)換需求。

        2 總體技術(shù)路線(xiàn)

        C++語(yǔ)言將問(wèn)題和事物抽象成對(duì)象,而很多對(duì)象都具有共性,它們的動(dòng)作是相似的,只是對(duì)象的類(lèi)型不同而已。C++的泛型編程,可以將“類(lèi)型”參數(shù)化,模板是C++支持參數(shù)化多態(tài)的工具,采用模板技術(shù),為類(lèi)或者函數(shù)聲明一種通用模式,可使代碼更具通用性。各類(lèi)矢量數(shù)據(jù)可視為一個(gè)對(duì)象類(lèi)型,矢量數(shù)據(jù)要素由若干實(shí)體構(gòu)成,每種實(shí)體又由“點(diǎn)、線(xiàn)、面、注記”等子對(duì)象構(gòu)成,因此,采用C++語(yǔ)言的泛型編程思想開(kāi)發(fā)地理矢量數(shù)據(jù)的要素解碼方法,可有效提高代碼的通用性與可維護(hù)性。

        因此,本方法的總體技術(shù)路線(xiàn)是基于C++泛型編程,研究基于Teigha的地理數(shù)據(jù)要素解碼算法,實(shí)現(xiàn)不依賴(lài)AutoCAD平臺(tái)兼容CAD中數(shù)十種不同實(shí)體類(lèi)型的要素解碼;研究基于GDAL/OGR的地理數(shù)據(jù)要素解碼算法,不依賴(lài)第三方平臺(tái),實(shí)現(xiàn)對(duì)矢量數(shù)據(jù)的要素解碼與格式轉(zhuǎn)換。從而構(gòu)建多源地理矢量數(shù)據(jù)要素解碼服務(wù),支撐多源數(shù)據(jù)集成的數(shù)據(jù)訪(fǎng)問(wèn)、共享與格式轉(zhuǎn)換需求與應(yīng)用。地理矢量數(shù)據(jù)要素解碼技術(shù)路線(xiàn)如圖1所示。

        圖1 地理矢量數(shù)據(jù)要素解碼技術(shù)路線(xiàn)

        3 基于Teigha的CAD數(shù)據(jù)要素解碼

        AutoCAD在測(cè)繪領(lǐng)域運(yùn)用廣泛,很多成果都是CAD格式。CAD數(shù)據(jù)的轉(zhuǎn)換與解析,常用的解決方法有兩個(gè):一是使用FME,F(xiàn)ME是萬(wàn)能的空間數(shù)據(jù)轉(zhuǎn)換器,支持的格式廣泛,用它可以輕松將CAD轉(zhuǎn)換為其他格式,再進(jìn)行下一步操作;二是使用CAD.net二次開(kāi)發(fā)組件,較強(qiáng)大的方式是Lisp、AutoCAD二次開(kāi)發(fā),其學(xué)習(xí)資源豐富,開(kāi)發(fā)難度低,但不能脫離AutoCAD環(huán)境,可以實(shí)現(xiàn)讀取和編輯,但對(duì)塊參照等類(lèi)型的實(shí)體支持不夠。上述方法都有一個(gè)共同缺憾,就是不能脫離CAD或ArcGIS環(huán)境。

        ODA即Open Design Alliance,是一個(gè)面向會(huì)員的非營(yíng)利性技術(shù)聯(lián)盟,致力于促進(jìn)開(kāi)放的、工業(yè)標(biāo)準(zhǔn)的CAD數(shù)據(jù)和歷史CAD數(shù)據(jù)的格式交換,使用面向?qū)ο蟮腁PI實(shí)現(xiàn)不依賴(lài)第三方環(huán)境的CAD數(shù)據(jù)的讀寫(xiě)操作、繪制渲染和格式轉(zhuǎn)換等,與AutoCAD的兼容性非常好[2],ODA開(kāi)發(fā)的用于圖形應(yīng)用程序的核心平臺(tái)TeighaTM,Teigha支持dwg、dxf、dgn、stl、pdf等多種格式之間的數(shù)據(jù)訪(fǎng)問(wèn)與交換。支持Windows、Mac、Unix、Linux等多個(gè)平臺(tái)。ODA會(huì)員可以用C++,.NET和ActiveX接口開(kāi)發(fā)自己的應(yīng)用程序。

        Teigha框架中,一個(gè)CAD文件,其實(shí)是一個(gè)記錄圖形和非圖形對(duì)象的數(shù)據(jù)庫(kù)。在該數(shù)據(jù)庫(kù)中,包括系統(tǒng)符號(hào)表和字典表。其中字典表(Dictionary)是存儲(chǔ)各種CAD對(duì)象的容器,可理解為一個(gè)映射表,用戶(hù)的自定義數(shù)據(jù)存放在字典表中,可以添加新的字典并且往里面添加對(duì)象,每個(gè)CAD數(shù)據(jù)庫(kù)文件中有一個(gè)默認(rèn)的字典(Object Dictionary),是所有數(shù)據(jù)庫(kù)字典的根字典。系統(tǒng)符號(hào)表共有9張(如表1所示),只能向表里添加內(nèi)容,但不能改變表的數(shù)量。對(duì)象如放入到正確的容器中,則屬于CAD數(shù)據(jù)庫(kù)文件的有效對(duì)象,否則就是無(wú)效對(duì)象(non-resident)。ODA_Database結(jié)構(gòu)如圖2所示。

        ODA系統(tǒng)符號(hào)表 表1

        圖2 ODA_Database結(jié)構(gòu)

        CAD要素解碼算法流程:

        (1)初始化Teigha庫(kù);調(diào)用odInitialize(OdDbSystemServices* pSystemServices)函數(shù)注冊(cè)Teigha支持的所有類(lèi),LoadDRXModules()函數(shù)載入需使用的模塊。常用模塊包括:對(duì)象捕捉模塊(GripPoints)、附加命令模塊(DbCommands)、核心動(dòng)態(tài)塊支持模塊(TD_DynBlocks)、格式導(dǎo)出模塊(TD_Tf)等等。

        (2)打開(kāi)DWG文件;調(diào)用ExHostAppServices模版類(lèi)的readFile函數(shù)打開(kāi)DWG文件,返回?cái)?shù)據(jù)庫(kù)對(duì)象智能指針OdDbDatabasePtr。

        (3)讀取Database中對(duì)象;ExProtocolExtension類(lèi)是針對(duì)所有對(duì)象解碼與操作的協(xié)議擴(kuò)展類(lèi),該類(lèi)初始化后,可采用迭代器對(duì)每種對(duì)象進(jìn)行解碼與操作。

        (4)遍歷對(duì)象進(jìn)行解碼;構(gòu)建OdDbObjectIteratorPtr類(lèi)迭代器指針,獲取每個(gè)對(duì)象的objectId,調(diào)用openObject函數(shù)返回實(shí)體對(duì)象指針OdDbEntityPtr或其他對(duì)象指針OdDbObjectPtr,分別將其轉(zhuǎn)換為OdSmartPtr、OdSmartPtr類(lèi)型,OdDbEntity_Dumper、OdDbObject_Dumper類(lèi)繼承于OdRxObject,是所有對(duì)象解碼與操作的基類(lèi),可自動(dòng)判斷對(duì)象類(lèi)型,根據(jù)需求對(duì)Database中對(duì)象進(jìn)行轉(zhuǎn)換與處理。

        (5)執(zhí)行轉(zhuǎn)換與處理后,保存數(shù)據(jù),調(diào)用OdDbDatabasePtr類(lèi)的release函數(shù)關(guān)閉數(shù)據(jù)庫(kù),進(jìn)入下一流程。

        從而,通過(guò)C++泛型編程,實(shí)現(xiàn)不依賴(lài)AutoCAD平臺(tái)兼容CAD中數(shù)十種不同實(shí)體類(lèi)型的要素解碼。

        4 基于GDAL/OGR的地理數(shù)據(jù)要素解碼與轉(zhuǎn)換

        GDAL(Geospatial Data Abstraction Library)利用抽象數(shù)據(jù)模型來(lái)表達(dá)所支持的各種文件格式,是在X/MIT許可協(xié)議下的開(kāi)源柵格空間數(shù)據(jù)轉(zhuǎn)換庫(kù),提供對(duì)asc、tiff、img、dem等多種柵格數(shù)據(jù)的支持。OGR是GDAL項(xiàng)目的一個(gè)分支,功能與GDAL類(lèi)似,它提供對(duì)Shapefiles、PostGIS(需要libpq庫(kù))、Oracle Spatial(需要OCI庫(kù))、Mapinfo(mid/mif、TAB)、Dxf等多種矢量數(shù)據(jù)的支持[3,4]。GDAL/OGR除默認(rèn)編譯的庫(kù)之外,可引入第三方庫(kù)增強(qiáng)對(duì)格式的支持,如添加FileGDB API庫(kù)則可實(shí)現(xiàn)對(duì)ESRI FileGDB數(shù)據(jù)的支持。

        Esri的ArcGIS系列、Erdas、Google Earth和跨平臺(tái)的GRASS GIS、Quantunm GIS系統(tǒng)等很多著名的GIS類(lèi)產(chǎn)品都使用了GDAL/OGR庫(kù)。利用GDAL/OGR庫(kù),可以使地理空間數(shù)據(jù)管理系統(tǒng)提供對(duì)矢量和柵格文件數(shù)據(jù)的支持[3,5,6]。本文僅討論基于OGR的矢量數(shù)據(jù)解碼。

        基于GDAL/OGR的地理矢量數(shù)據(jù)要素解碼與轉(zhuǎn)換算法流程(圖3):

        圖3 基于GDAL/OGR的地理數(shù)據(jù)要素解碼與轉(zhuǎn)換

        (1)根據(jù)文件類(lèi)型自動(dòng)選擇數(shù)據(jù)驅(qū)動(dòng);

        (2)由數(shù)據(jù)驅(qū)動(dòng)打開(kāi)數(shù)據(jù)源(Dataset);

        (3)遍歷Dataset中實(shí)體要素;

        (4)讀取要素?cái)?shù)據(jù)信息;

        (5)判斷要素類(lèi)型;

        (6)根據(jù)要素類(lèi)型調(diào)用模板函數(shù)解析要素信息;

        (7)根據(jù)需求對(duì)信息進(jìn)行轉(zhuǎn)換與處理;

        (8)進(jìn)入步驟(3)。

        (9)關(guān)閉數(shù)據(jù)源(Dataset),進(jìn)入下一流程。

        進(jìn)而,基于C++泛型編程,不依賴(lài)第三方平臺(tái),實(shí)現(xiàn)對(duì)矢量數(shù)據(jù)的要素解碼與轉(zhuǎn)換。

        5 結(jié) 語(yǔ)

        本文提出的多源地理矢量數(shù)據(jù)要素解碼方法,具有通用性、可擴(kuò)展性、可維護(hù)性強(qiáng)的特點(diǎn),有效解決了地理數(shù)據(jù)要素解碼過(guò)度依賴(lài)第三方平臺(tái)帶來(lái)的問(wèn)題,實(shí)現(xiàn)了不依賴(lài)第三方平臺(tái)的地理信息圖件與數(shù)據(jù)解碼與轉(zhuǎn)換??蔀槎嘣串悩?gòu)數(shù)據(jù)的數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)融合與共享應(yīng)用提供思路。

        猜你喜歡
        字典解碼矢量
        開(kāi)心字典
        家教世界(2023年28期)2023-11-14 10:13:50
        開(kāi)心字典
        家教世界(2023年25期)2023-10-09 02:11:56
        《解碼萬(wàn)噸站》
        矢量三角形法的應(yīng)用
        解碼eUCP2.0
        NAD C368解碼/放大器一體機(jī)
        Quad(國(guó)都)Vena解碼/放大器一體機(jī)
        我是小字典
        正版字典
        讀者(2016年14期)2016-06-29 17:25:50
        基于矢量最優(yōu)估計(jì)的穩(wěn)健測(cè)向方法
        在线观看播放免费视频| 欧美综合自拍亚洲综合图片区| 台湾佬中文娱乐网22| 久久久无码人妻精品无码| 亚洲人成人影院在线观看| 亚洲中文字幕精品久久久久久直播| 国产三级伦理视频在线| 久久一区二区三区少妇人妻| 国产在线精品一区二区三区直播| 一本色道av久久精品+网站 | 91精品国产高清久久久久| 新视觉亚洲三区二区一区理伦| 一本一道vs无码中文字幕| 国产成人av 综合 亚洲| www.av在线.com| av中文字幕一区人妻| 久久久亚洲av成人网站| 久久夜色精品国产噜噜麻豆| 国产精品99久久久精品免费观看| av免费在线观看网站大全| 日本不卡高字幕在线2019| 国产精品久久久久久影视| 男女好痛好深好爽视频一区| 日韩在线视频专区九区| 精品国际久久久久999波多野 | 白浆出来无码视频在线| 日韩精品一区二区在线视| 免费av一区二区三区| 天堂√中文在线bt| 超碰性爱| 亚洲写真成人午夜亚洲美女| 亚洲av午夜国产精品无码中文字| 国产乱理伦片在线观看| 亚洲老熟妇愉情magnet| 久久精品女同亚洲女同| 少妇久久久久久被弄高潮| 亚洲精品久久久久久动漫| 中文字幕亚洲综合久久| 亚洲av迷人一区二区三区| 激情航班h版在线观看| 久久福利青草精品资源|