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
主站蜘蛛池模板: 91在线中文| 三上悠亚精品二区在线观看| 日本草草视频在线观看| 日本午夜网站| 婷婷开心中文字幕| 精品无码一区二区三区电影| 午夜福利亚洲精品| 国产成人免费| 久久人搡人人玩人妻精品| 一级毛片高清| 国产在线麻豆波多野结衣| 囯产av无码片毛片一级| 精品国产福利在线| 国产一区亚洲一区| 国产真实乱子伦视频播放| 少妇露出福利视频| 欧美三级视频网站| 国产亚洲精久久久久久久91| 亚洲无码91视频| jijzzizz老师出水喷水喷出| 免费无码在线观看| 色婷婷色丁香| 中文字幕va| 欧美一级专区免费大片| 丝袜美女被出水视频一区| 福利一区在线| 国产十八禁在线观看免费| 日韩二区三区无| 九九免费观看全部免费视频| 国产91久久久久久| 91尤物国产尤物福利在线| 国产一在线观看| 99在线视频网站| 国产不卡网| 国产一在线观看| 99久久国产综合精品2020| 久久夜色精品| 第一区免费在线观看| 欧美国产在线看| 18禁黄无遮挡免费动漫网站| 69免费在线视频| 国产欧美日韩va| 日韩欧美成人高清在线观看| 日韩无码视频专区| 国产成a人片在线播放| 欧美亚洲第一页| 乱码国产乱码精品精在线播放| 色爽网免费视频| 67194亚洲无码| 日韩精品免费在线视频| 国产免费人成视频网| 婷婷亚洲视频| 亚洲成人免费在线| 99久久国产自偷自偷免费一区| 女人爽到高潮免费视频大全| 91在线国内在线播放老师 | 亚洲区欧美区| 国产黑人在线| 精品五夜婷香蕉国产线看观看| 亚洲精品无码日韩国产不卡| 一本大道视频精品人妻| 日本草草视频在线观看| 精品少妇人妻av无码久久| 国产在线观看一区二区三区| 真实国产精品vr专区| 国产大片喷水在线在线视频| 国内精品自在自线视频香蕉| 亚洲国产在一区二区三区| 四虎影视库国产精品一区| 国产成+人+综合+亚洲欧美| 日本精品视频| 国产经典在线观看一区| 成人字幕网视频在线观看| 一级片一区| 亚卅精品无码久久毛片乌克兰| 国产精品性| 亚洲 欧美 偷自乱 图片| 亚洲国产精品国自产拍A| 免费jizz在线播放| 亚洲精品天堂在线观看| 国产凹凸一区在线观看视频| 精品国产www|