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
主站蜘蛛池模板: 夜夜操天天摸| 亚洲经典在线中文字幕| 国产美女一级毛片| www.youjizz.com久久| 亚洲开心婷婷中文字幕| 伊人91视频| 日韩小视频在线观看| 国产超碰一区二区三区| 午夜福利网址| 欧美一区国产| 国产精欧美一区二区三区| 国产成人无码综合亚洲日韩不卡| 国产性猛交XXXX免费看| 国产91透明丝袜美腿在线| 毛片久久久| 久久五月天国产自| 在线va视频| AV片亚洲国产男人的天堂| 在线观看av永久| 亚洲不卡无码av中文字幕| 一本大道无码日韩精品影视| 国产欧美一区二区三区视频在线观看| 亚洲视频免费在线看| 精品视频一区二区观看| 污网站免费在线观看| 成人av专区精品无码国产| 亚洲成年网站在线观看| 久久黄色视频影| 国产精品美乳| 在线观看国产精美视频| 天堂成人在线| 热伊人99re久久精品最新地| 国产一级妓女av网站| 欧美一道本| 91精品视频播放| 国产精品吹潮在线观看中文 | 久久久久中文字幕精品视频| 欧美黄色网站在线看| 91国内外精品自在线播放| 国产在线拍偷自揄拍精品| 免费高清自慰一区二区三区| 小蝌蚪亚洲精品国产| 成人国产精品视频频| 欧美精品二区| 人妻91无码色偷偷色噜噜噜| 久久久噜噜噜久久中文字幕色伊伊| 中文国产成人久久精品小说| 日本日韩欧美| 婷婷色丁香综合激情| 欧美国产精品不卡在线观看| 久久精品人人做人人爽电影蜜月| 欧美日韩亚洲综合在线观看 | 亚洲精品麻豆| 国产国产人成免费视频77777| swag国产精品| 国产亚洲精品97AA片在线播放| 97国产精品视频自在拍| 狠狠亚洲婷婷综合色香| 欧美日韩精品一区二区在线线| 综合亚洲色图| 一级成人a毛片免费播放| 久久久久国色AV免费观看性色| 亚洲一区二区三区在线视频| 99无码中文字幕视频| AⅤ色综合久久天堂AV色综合| 欧美成人精品一区二区| 亚洲一区二区三区麻豆| 久久午夜夜伦鲁鲁片无码免费| 91福利免费| 亚洲国产91人成在线| 波多野结衣一区二区三区88| 亚洲人成网站在线播放2019| 国产精品太粉嫩高中在线观看| 亚洲一欧洲中文字幕在线| swag国产精品| 亚洲人成网站色7799在线播放| 亚洲不卡网| av在线手机播放| 凹凸精品免费精品视频| 成人一区专区在线观看| 国产高清色视频免费看的网址| 国产成人乱无码视频|