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
主站蜘蛛池模板: 中国国产A一级毛片| 欧美成人免费| 国产在线八区| 成人在线天堂| 欧美性天天| 再看日本中文字幕在线观看| 午夜小视频在线| 日韩欧美中文字幕一本| 第一页亚洲| 99热这里只有精品在线观看| 久久久久国产精品熟女影院| 91精品国产91欠久久久久| 日韩区欧美国产区在线观看| 二级特黄绝大片免费视频大片| 国产又爽又黄无遮挡免费观看 | 久久99国产综合精品女同| 毛片在线播放a| 青青草原国产av福利网站| 国产精品人人做人人爽人人添| 亚洲性日韩精品一区二区| 国产精品第| 免费在线看黄网址| 免费Aⅴ片在线观看蜜芽Tⅴ| 国产一级毛片网站| 欧美日韩国产成人高清视频| 国产成人免费高清AⅤ| 亚洲一区无码在线| 免费人欧美成又黄又爽的视频| 免费 国产 无码久久久| 亚洲无线一二三四区男男| 亚洲欧美一区二区三区蜜芽| 亚洲区视频在线观看| a级毛片免费播放| 日韩欧美亚洲国产成人综合| 亚洲成人网在线播放| 欧美精品xx| 久久亚洲精少妇毛片午夜无码| 国产一区二区三区在线精品专区| 免费看美女自慰的网站| 国外欧美一区另类中文字幕| 色AV色 综合网站| 亚洲丝袜第一页| 国产精品亚洲专区一区| 1024国产在线| 亚洲无码免费黄色网址| 超薄丝袜足j国产在线视频| 中文无码毛片又爽又刺激| 亚洲成人动漫在线| 亚洲一级毛片在线观播放| 久久久久久久97| 狠狠色噜噜狠狠狠狠色综合久| 国产一级毛片yw| 成人午夜网址| 中日韩欧亚无码视频| 97影院午夜在线观看视频| 四虎成人精品在永久免费| 日本免费a视频| 青青草国产精品久久久久| 无码国内精品人妻少妇蜜桃视频| 色综合手机在线| 亚洲欧美日韩中文字幕在线| 狠狠综合久久| 国产精品第5页| 极品性荡少妇一区二区色欲| 伊人久久大香线蕉成人综合网| 国内精品一区二区在线观看| h网站在线播放| 成人国产精品网站在线看| 波多野结衣第一页| 青草国产在线视频| …亚洲 欧洲 另类 春色| 亚洲综合二区| 亚洲AV一二三区无码AV蜜桃| 亚洲色图狠狠干| 国产精品免费电影| 天天色综网| 国产精品亚洲五月天高清| 狠狠v日韩v欧美v| 最新日本中文字幕| 免费在线成人网| 欧美日韩一区二区在线免费观看| 鲁鲁鲁爽爽爽在线视频观看 |