999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于GDAL的CAD數據向Shp數據轉換

2017-07-07 12:45:14劉宏光王洪棟劉海辰
城市勘測 2017年3期
關鍵詞:二次開發利用

劉宏光,王洪棟,劉海辰

(1.天津市勘察院,天津 300191; 2.中國地震局第一監測中心,天津 300180)

基于GDAL的CAD數據向Shp數據轉換

劉宏光1*,王洪棟2,劉海辰1

(1.天津市勘察院,天津 300191; 2.中國地震局第一監測中心,天津 300180)

Shp數據是地理信息數據管理常用的一種數據格式,目前國土資源和城市規劃管理等部門多采用此格式文件作為基礎數據交換和傳遞的媒介。在比較常用轉換方法的優缺點的基礎上介紹了利用GDAL將CAD數據轉換為Shp數據的流程及優缺點,實踐操作表明此方法具有可自動化操作、無須依賴于GIS環境、開發難度低、運行穩定等特點,在日常作業過程中尤其是在大批量的數據轉換過程中具有一定的優勢。

GDAL;CAD;Shp;數據轉換

1 概 述

Shp數據是地理信息數據管理常用的一種數據格式,目前國土資源和城市規劃管理等部門多采用此格式文件作為基礎數據交換和傳遞的媒介。而一般測繪生產單位在成圖階段大多采用AutoCAD作為基礎平臺,其成果文件大多為DWG或DXF文件。將CAD文件轉換為Shp文件常用的方法主要有以下幾種:用ArcGIS軟件或Autodesk AutoCAD Map 3D軟件手動轉換[1];利用ArcGIS提供的接口進行二次開發讀取圖形實體實現自動轉換[2,3];讀取CAD交換格式dxf文件后從底層生成Shp文件[4];基于空間數據操作引擎(FME)實現操作[5]。本文在綜合比較各種轉換方法的優缺點的基礎上利用開源地理空間數據抽象庫GDAL成功實現了CAD數據轉換為Shp數據的操作。

2 常用的轉化方法及其優缺點

(1)用ArcGIS軟件手動轉換

這種方法在轉換前需進行圖層轉換、文件重命名、解密等預處理工作,然后在ArcGIS軟件上用轉換工具將圖形文件直接轉換為Shp數據文件,并進行手工圖形編輯填寫相關的字段屬性信息。

(2)用Autodesk AutoCAD Map 3D軟件手動轉換

這種方法用Autodesk AutoCAD Map 3D軟件手動轉換需在進行圖層轉換預處理后利用Autodesk AutoCAD Map 3D軟件自帶的地圖工具將其輸出為Shp數據文件,然后在ArcGIS平臺上進行手工圖形編輯,并填寫相關的字段屬性信息。

(3)利用ArcGIS提供的接口進行二次開發讀取圖形實體實現自動轉換

這種方法是直接利用ArcGIS提供的二次開發接口,使用VB、C++、C#等變成語言開發相關程序在讀取CAD圖形數據后直接將其轉換為Shp數據。

(4)讀取CAD交換格式dxf文件后從底層生成Shp文件

這種方法通過編制相應的程序按照dxf文件的定義規則讀取數據,然后再將其按照Shp文件的格式要求寫入從而生成Shp數據。

(5)基于FME的數據轉換操作

空間數據操作引擎(Feature Manipulation Engine,FME)是一個第三方數據轉換的工具,可實現100多種格式的數據間的相互轉換。其空間數據轉換是通過采用語義映射文件來控制整個轉換流程的[5]。

用ArcGIS軟件手動轉換和利用Autodesk AutoCAD Map 3D軟件手動轉換這兩種方法,利用現有軟件進行操作無須進行二次開發,前期工作簡單、形象直觀,但是如果CAD圖形復雜、屬性龐雜或工作任務繁重時,圖形編輯及屬性填寫的工作量大、效率低、對作業人員的身體素質和業務素質要求相當高,不適于大規模、大工程量及批量作業。

利用ArcGIS提供的接口進行二次開發讀取圖形實體實現自動轉換及讀取CAD交換格式dxf文件后從底層生成Shp文件這兩種方式都能夠通過編程手段實現CAD數據的自動化讀取和Shp文件的生成操作且可在生成的過程中對圖面進行檢查并將屬性信息一并寫入Shp文件中,后期的圖形編輯和屬性編輯工作量相對來說很小。但是前者依賴于ArcGIS提供的接口環境,后者需對dxf格式和Shp文件格式研究的相當透徹。

基于FME的實現數據轉換操作既可以在FME軟件下直接用語義映射文件手工實現操作或對其進行二次開發定制插件進行自動化操作,兩者均可實現批量操作以提高作業效率。但是采用語義映射文件需要用戶對FME軟件及映射文件的規則相當熟悉并能夠根據數據轉化需要在研究不同GIS數據組成格式、定義方法和FME語義轉換引擎執行過程的基礎上靈活修改FME語義映射文件,對用戶的素質要求較高。而FME的二次開發需要FME的運行時環境作為支撐。

3 利用GDAL進行轉化的優點及其操作流程

GDAL全稱是Geospatial Data Abstraction Library(地理空間數據抽象庫)是一個在X/MIT許可協議下讀寫空間數據(包括柵格數據和矢量數據)的開源庫,它利用抽象數據模型來表達所支持的各種文件格式,還使用一系列命令行工具來進行數據轉換和處理。目前幾乎所有的GIS和RS軟件底層都使用GDAL來讀寫空間數據。

OGR是GDAL的一個分支,提供對矢量數據的讀寫支持,同時它實現了對空間參考信息進行處理的類,用來對空間數據的空間信息進行處理。

利用GDAL的OGR動態鏈接庫進行二次開發,可實現CAD數據向Shp數據的自動轉換,這種方法既擺脫了ArcGIS二次開發的環境依賴,又無須對dxf格式和Shp文件格式進行過深的研究,開發相當便捷。

利用這種開發方式,直接讀取CAD圖形文件后經歷OGR驅動注冊、創建數據源、創建圖層、創建圖形要素和屬性要素、將圖形要素和屬性要素進行匹配等階段后即可實現從CAD數據向Shp數據轉換。具體流程如圖1所示。

現有的成圖軟件大多將相關圖形和屬性信息分圖層或線型等方式進行存儲,在圖面讀取的過程中可按照預先設定的成圖規則進行讀取,并通過數據結構將其組織起來。在圖面讀取實體的過程中可對圖形實體按照既定規則進行檢查,判斷其是否存在諸如面狀圖形非閉合曲線等問題,按照實體目標進行自動修改。

在讀取圖形數據的過程中可以從數據字典中將其屬性信息提取出來也可通過讀取外部配置信息文件將屬性信息與圖形進行匹配,從而在生成Shp數據文件的過程中將圖形數據與屬性數據一并寫入減小后期編輯的工程量。

圖1 利用GDAL生成Shp數據流程圖

4 工程實例

為了滿足地鐵線路的規劃數據歸檔管理的需要,本文Vsisul Studio平臺采用C#語言利用GDAL動態鏈接庫進行二次開發成功實現了CAD數據向Shp數據的轉換。

程序運行的過程中為了存儲圖形數據及屬性配置信息,按照圖形要素點、線、面三種類型分別定義其存儲格式,以點為核心,由點組線,由線組面。并定義一組公共變量存儲外部配置文件信息。

TypedValue[]values=new TypedValue[]{

new TypedValue((int)DxfCode.LayerName,strLayer)

};//圖層選擇集,strLayer為圖層名稱

SelectionFilter Filter=new SelectionFilter(values);//選擇器

PromptSelectionResult acSSPrompt=acDoc.Editor.SelectAll(Filter);

if(acSSPrompt.Status==PromptStatus.OK)

{

SelectionSet acSSet=acSSPrompt.Value;

foreach(SelectedObject acSSObj in acSSet)

{

if(acSSObj !=null)

{

LL.Add(acSSObj);//將本圖層上的實體添加到實體集合中

}

}

}

本文利用GDAL生成Shp數據的過程是將每個對象化為對應的點組,然后在Shp相應圖層上組成幾何圖形。上述代碼給出了如何按圖層獲取圖形集合,CAD的所有的圖形對象均可將其看作由點、直線、弧線組成。將圓、弧等復雜圖形經過分解迭代后均可化為線段,線段的端點可通過下列代碼:

Point3d st=plt.StartPoint;//獲取線段的起點plt為線段對象

Point3d ed=plt.EndPoint;//獲取點段的終點

將獲取的CAD圖形數據對象與其屬性及外部配置信息進行匹配后便可利用GDAL進行Shp數據生成。

創建注冊OGR驅動

OSGeo.GDAL.Gdal.SetConfigOption("SHAPE_ENCODING","CP936");//支持中文

string pszDriverName="ESRI Shapefile";

OSGeo.OGR.Ogr.RegisterAll();//注冊OGR驅動

調用對Shape文件讀寫的Driver接口

OSGeo.OGR.Driver poDriver=OSGeo.OGR.Ogr.GetDriverByName(pszDriverName);

用Driver創建Shape文件

OSGeo.OGR.DataSource poDS;

poDS=poDriver.CreateDataSource(strFilePath,null);

創建層Layer

OSGeo.OGR.Layer poLayer;poLayer=poDS.CreateLayer(shpFileName,null,OSGeo.OGR.wkbGeometryType.wkbMultiPolygon,null);

創建數據表屬性列

OSGeo.OGR.FieldDefn oField0=new OSGeo.OGR.FieldDefn("CLNR",OSGeo.OGR.FieldType.OFTString);//以創建測量內容字段為例

oField0.SetWidth(30);//寬度30

poLayer.CreateField(oField0,0);//創建字段

完成準備工作后便可進行圖形要素添加和屬性綁定工作

OSGeo.OGR.Feature facFeature=new OSGeo.OGR.Feature(poLayer.GetLayerDefn());//定義要素

facFeature.SetField(0,Hou_Configformation.strCLNR);//在測量內容字段中填入相應的內容

string strCr="POLYGON(("+LFaceData[i].Coordinate+"))";//定義生成圖形要素的字段

OSGeo.OGR.Geometry pt=OSGeo.OGR.Geometry.CreateFromWkt(strCr);//創建多邊形

facFeature.SetGeometry(pt);//圖形與屬性進行捆綁

oLayer.CreateFeature(facFeature);//創建圖形要素

在程序編制完成準備完外置屬性配置文件后,在CAD平臺中加載上述開發成果的動態鏈接庫,指定轉換路徑后即可一鍵生成Shp數據文件,其成果如圖2所示,圖形及屬性一次成型,大大減小了后期的編輯工作。經過實際測試,程序運行穩定、快捷、準確,極大提高了生產效率和成果質量。

圖2 生成的Shp數據

5 結 語

目前Shp數據在國土資源和城市規劃管理等工作中起著十分重要的作用,傳統的數據轉換方法或多或少存在一些不足。基于GDAL將CAD數據轉換為Shp數據具有可自動化操作、無須依賴于GIS環境、開發難度低、運行效率高、運行穩定且開發難度相對較低等特點,具有一定的應用價值。本文利用GDAL成功實現了從CAD數據向Shp數據的轉換,對技術人員具有一定的參考意義。

[1] 曲鋼. 淺談.shp數據格式的轉換方法[J]. 北京測繪,2012(4):84~86.

[2] 安衛. 基于VBA的兩證合一SHP數據制作自動化的實現[J]. 城市勘測,2011(2) : 141~143.

[3] 劉鋒,張繼賢,李海濤. SHP文件格式的研究與應用[J]. 測繪科學,2006,31(6):197~198.

[4] 紀海源,魯純,何遠梅. VB實現DXF與SHP文件轉換[J]. 遼寧省交通高等專科學校學報,2013,15(6):22~26.

[5] 左娟,李勇軍. 基于FME 的GIS 空間數據互操作技術探討[J]. 測繪標準化,2013,29(2):16~17.

[6] 林斌,杜珺. AutoCAD2012完全自學一本通[M]. 北京:電子工業出版社,2011.

The Method of Converting the CAD Data to Shp Data Base on GDAL

Liu Hongguang1,Wang Hongdong2,Liu Haicheng1

(1.Tianjin Institute of Geotechnical Investigation & Surveying,TianJin 300191,China; 2.The First Monitoring and Application Center,China Earthquake Administration,TianJin 300180,China)

Shp data is a common data format for geographic information data management. At present,It is widely used in land resources and urban planning management as the basis medium for data exchange and transmission. On the basis of comparing the advantages and disadvantages of the commonly used methods,the paper introduces the process and advantages and disadvantages of the method by using GDAL. The practice shows that the method combines the qualities of automatic operation,no need to rely on the GIS environment,the development of low difficulty,stable operation and so on. In the process of daily work,especially in the large batch of data conversion process the method has certain advantages.

GDAL;.CAD;Shp;data;convert

1672-8262(2017)03-71-04

P208.1

B

2016—10—25

劉宏光(1982—),男,工程師,主要從事工程測量、變形監測及測繪成圖等方面研究。

中國地震局第一監測中心科技創新主任基金(FMC2016008)

猜你喜歡
二次開發利用
利用min{a,b}的積分表示解決一類絕對值不等式
中等數學(2022年2期)2022-06-05 07:10:50
利用倒推破難點
利用一半進行移多補少
淺談基于Revit平臺的二次開發
甘肅科技(2020年20期)2020-04-13 00:30:02
西門子Operate高級編程的旋轉坐標系二次開發
淺談Mastercam后處理器的二次開發
模具制造(2019年3期)2019-06-06 02:11:02
利用數的分解來思考
Roommate is necessary when far away from home
利用
Micaps3.2 版本二次開發入門淺析
西藏科技(2015年12期)2015-09-26 12:13:51
主站蜘蛛池模板: 亚洲大学生视频在线播放| 99国产精品一区二区| 国产在线观看人成激情视频| 久久综合九色综合97婷婷| 亚洲天堂色色人体| 91黄色在线观看| 国产精品三级av及在线观看| 色香蕉网站| 日韩无码视频网站| 国产午夜无码片在线观看网站 | 国产第八页| 久久九九热视频| 国产精品爽爽va在线无码观看| 国产女人在线观看| 欧美性精品不卡在线观看| 欧美亚洲网| 久久不卡国产精品无码| 亚洲AV无码久久天堂| 青草娱乐极品免费视频| 久久综合九色综合97婷婷| 久久成人国产精品免费软件| 成人在线观看一区| 福利视频一区| 51国产偷自视频区视频手机观看| 在线欧美国产| 妇女自拍偷自拍亚洲精品| 女同国产精品一区二区| 一级爱做片免费观看久久 | 91精品国产一区| 国产中文在线亚洲精品官网| 人妻精品全国免费视频| 亚洲日韩Av中文字幕无码| 久久黄色免费电影| 日本a级免费| 亚洲AV免费一区二区三区| 国产综合精品日本亚洲777| 成人午夜福利视频| 精品国产一区二区三区在线观看 | 国产亚洲精品无码专| 国产99视频在线| 免费国产好深啊好涨好硬视频| 亚洲一区免费看| 成人午夜视频在线| 伊人91在线| 国产精品成人不卡在线观看| 亚洲色图另类| 毛片a级毛片免费观看免下载| 中文字幕色在线| 亚洲最新在线| 伊在人亚洲香蕉精品播放| 91视频99| 亚洲最大情网站在线观看| 亚洲AⅤ永久无码精品毛片| 国产制服丝袜91在线| 99青青青精品视频在线| 老汉色老汉首页a亚洲| 亚洲精品第一页不卡| www精品久久| 99草精品视频| 88av在线看| 国产一区二区三区夜色| 99精品免费在线| 亚洲自拍另类| 欧美不卡视频在线| 国产成人h在线观看网站站| 国产欧美在线| 国产亚洲精品资源在线26u| 好吊妞欧美视频免费| 国产真实自在自线免费精品| 亚洲国模精品一区| 99激情网| AV不卡无码免费一区二区三区| 久久女人网| 国产午夜精品一区二区三区软件| 九色免费视频| 中文字幕无码中文字幕有码在线 | 亚洲色中色| 亚洲国产91人成在线| 亚洲免费成人网| 国产va在线观看| 亚洲欧美精品日韩欧美| 日韩成人在线一区二区|