日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

cad转shp 奥维_CAD转化为Shp

發(fā)布時(shí)間:2023/12/14 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 cad转shp 奥维_CAD转化为Shp 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

基于VBA的SCS數(shù)據(jù)分類轉(zhuǎn)換為Shape文件

作者:ffff??來源:博客園??發(fā)布時(shí)間:2008-08-25 13:31??閱讀:170 次??原文鏈接?? [收藏]

基于VBA 的SCS 數(shù)據(jù)分類轉(zhuǎn)換為Shape 文件

高宏兵,李鳳斌,王 進(jìn),劉 域

(大連九成測繪企業(yè)集團(tuán),遼寧大連116400)

摘 要 數(shù)據(jù)是GIS 發(fā)展及各類專題地理信息系統(tǒng)建立的基礎(chǔ),而目前提供基礎(chǔ)數(shù)據(jù)的來源,主要是各部門由

AutoCAD 二次開發(fā)軟件編輯的DWG數(shù)據(jù),并有編碼規(guī)則,用以區(qū)分不同的地物,所以有必要研究DWG數(shù)據(jù)的各

種轉(zhuǎn)換方法。在學(xué)習(xí)其他的數(shù)據(jù)轉(zhuǎn)換方法中,本文提出一種基于ArcMap 內(nèi)置VBA ,利用自定義轉(zhuǎn)換文件,對

DWG進(jìn)行分類轉(zhuǎn)換的方法,并在大連某地區(qū)的地籍測量的數(shù)據(jù)轉(zhuǎn)換中得到較好的應(yīng)用。

關(guān)鍵詞 編碼 GIS  DWG VBA  Geodatabase  數(shù)據(jù)轉(zhuǎn)換

中圖分類號(hào): P208    文獻(xiàn)標(biāo)識(shí)碼:B    文章編號(hào):1672 - 4097 (2007) 04 - 0037 - 03

本文是以大連某地區(qū)開思繪制的DWG 數(shù)據(jù)

為例,為滿足遼寧省城鎮(zhèn)地籍?dāng)?shù)據(jù)建庫標(biāo)準(zhǔn),將其

分類轉(zhuǎn)為Shape 數(shù)據(jù)格式為例,分析DWG、Shape

數(shù)據(jù)格式,介紹目前的轉(zhuǎn)換方法,根據(jù)筆者工作,

談?wù)劺肁rcMap 內(nèi)置VBA ,將DWG數(shù)據(jù)分類轉(zhuǎn)

換為Shape 數(shù)據(jù)的原理和轉(zhuǎn)換流程,并賦有關(guān)鍵

代碼。

1  一般的數(shù)據(jù)轉(zhuǎn)換方法

111  Arc Toolbox 轉(zhuǎn)換方法

ESRI 的Arc Toolbox 軟件,提供用戶強(qiáng)大的地

理信息處理功能,為不同類型的任務(wù)提供解決的途

徑。主要工具有:數(shù)據(jù)管理工具、分析工具、轉(zhuǎn)換工

具和定制工具(My Tool s) 。在Arc Toolbox 中,先

將DWG 轉(zhuǎn)為Geodatabase 數(shù)據(jù)格式, 選擇“Con2

version Tools (轉(zhuǎn)換工具) - > Import to Geodata2

base - > CAD to Geodatabase”;再把Geodatabase

轉(zhuǎn)為Shape 格式,選擇“Conversion Tool s (轉(zhuǎn)換工

具) - > Import to Shapefile - > Geodatabase to

Shapefile”。這種轉(zhuǎn)換只是把DWG 數(shù)據(jù)簡單的轉(zhuǎn)

為:點(diǎn)、線、面,不能實(shí)現(xiàn)分類提取的目的,達(dá)不到用

戶需要的結(jié)果。

112  利用其他軟件轉(zhuǎn)換

目前許多的GIS 軟件也可以轉(zhuǎn)換數(shù)據(jù),例如

SuperMap Deskpro 。還有專門對數(shù)據(jù)進(jìn)行轉(zhuǎn)換的

FME 軟件,它可以實(shí)現(xiàn)100 多種GIS 及CAD 空

間數(shù)據(jù)格式, 如DWG、DXF 、DGN 、Shape File 、

ArcSDE 等的相互轉(zhuǎn)換。但是對于專業(yè)的數(shù)據(jù)處

理軟件,價(jià)格一般比較昂貴,要定制復(fù)雜的數(shù)據(jù)

轉(zhuǎn)換任務(wù),需要使用人員參加培訓(xùn)學(xué)習(xí),這些對

于工程的投入大量資金, 所以這種轉(zhuǎn)換也不

可取。

2  利用ArcMap 內(nèi)置VBA 編寫分類轉(zhuǎn)換

程序

下面說明如何利用VBA 程序,將廣州開思軟

件編輯生成的DWG 格式數(shù)據(jù)分類轉(zhuǎn)為Shape

格式。

211  程序設(shè)計(jì)思想

21111  了解開思編碼體系

開思是采用對地物分類編碼的規(guī)則,先將地

物按層劃分,主要包括10 類(見表1) ,其它層還

有:Bound(框架線) 、Axes (軸線) 、Value (骨架線)

等。再將各層下不同地物進(jìn)行分類編碼,編碼統(tǒng)

一用7 位數(shù)字描述,結(jié)構(gòu)為:主編碼( 4 位+ 1 位)

+ 附編碼(2 位) ,前四位是按《國標(biāo)》要求,后面是

細(xì)分類的碼, 7 位編碼存儲(chǔ)在Thickness 屬性中。

對于以塊表示的地物,采用塊名的不同進(jìn)行7 位

數(shù)字編碼。

21112  建立轉(zhuǎn)換文件

根據(jù)開思軟件的編碼體系,建立DWG 數(shù)據(jù)與

Shape 的轉(zhuǎn)換文件( ZHWJ . t xt ) 。格式為:類型,屬

性字段,屬性值,Shape 文件名。如圖1 ,文件說明:

①將點(diǎn)數(shù)據(jù)中Text 屬性值為GC113 和GC200 轉(zhuǎn)

到CL KZD. shp (測量控制點(diǎn)) ②將線數(shù)據(jù)中Thick2

ness 屬性值為3231000 和3232000 轉(zhuǎn)到XZDW.

shp (線狀地物) ③將面數(shù)據(jù)中Thickness 屬性值為

2110100 和2110200 轉(zhuǎn)到MZFW. shp (面狀房屋)

④將注記點(diǎn)數(shù)據(jù)中Layer 屬性值為002 轉(zhuǎn)到TK.

shp (圖廓注記) ⑤將注記點(diǎn)數(shù)據(jù)中Layer 屬性值為

ZJ 轉(zhuǎn)到ZZJ . shp (注記) 。

212  程序流程及代碼說明

21211  程序流程

啟動(dòng)ArcMap ,運(yùn)行宏,讀入DWG 文件,根據(jù)

轉(zhuǎn)換文件構(gòu)造選擇條件,從DWG 數(shù)據(jù)中提取地物

轉(zhuǎn)換到指定的Shape 文件中,詳細(xì)流程(見圖1) 。

圖1  程序流程

31211  程序主要代碼說明

程序主要有三部分組成:讀入DWG文件,讀入

轉(zhuǎn)換文件,根據(jù)轉(zhuǎn)換文件分類選取并保持到Shape

文件。受篇幅限制,下面給出部分主要代碼。

(1) 讀入DWG文件。

Set pWorkspace = pCadWKSFact . OpenFromFile

(DWG- Path , 0) ‘/ 設(shè)置DWG文件路徑/

Set p FeatureDataset = pWorkspace. OpenFeatureDataset

(DWG- name) ‘/ 打開DWG特征數(shù)據(jù)/

Set p FeatureClassContainer = p FeatureDataset

For Count = 0 To p FeatureClassContainer. ClassCount

—1‘/ 分類特征數(shù)據(jù)/

?‘/ 代碼略,讀入DWG 數(shù)據(jù),生成點(diǎn)D、點(diǎn)Z、線

X、面M FeatureLayer/

Next Count

pMxDoc. UpdateContent s ’/ 刷新顯示/

(2) 讀入轉(zhuǎn)換文件。

Open " ZHWJ . TXT" For Input As # 1‘/ 打開轉(zhuǎn)換

文件/

Do While Not EOF (1) ‘/ 循環(huán)讀取轉(zhuǎn)換文件讀到數(shù)

組ZH 中/

Input # 1 , ZH (Number , 1) , ZH (Number , 2) ,

ZH(Number , 3) , ZH(Number , 4)

Number = Number + 1‘/ 循環(huán)到數(shù)組的下一行/

Loop

Close # 1‘/ 關(guān)閉轉(zhuǎn)換文件/

(3) 根據(jù)轉(zhuǎn)換文件分類選取,并存儲(chǔ)為Shape

文件,并按遼寧省城鎮(zhèn)地籍?dāng)?shù)據(jù)建庫標(biāo)準(zhǔn)添加屬性

字段。

Set pMxDoc = Application. Document‘/ 取得焦點(diǎn)Map

對象/

Set pMap = pMxDoc. FocusMap‘/ 設(shè)置當(dāng)前活動(dòng)視圖/

‘/ 創(chuàng)建一個(gè)新的空間書簽對象,并設(shè)置它定位到焦點(diǎn)地

圖的當(dāng)前可視范圍/

Set pActiveView = pMap

For I = 1 To Number —1‘/ 按行循環(huán)存放轉(zhuǎn)化文件的

數(shù)組/

Select Case ZH( I , 1) ‘/ 根據(jù)數(shù)組第一列/

Case“Z”‘/ 如果ZH( I , 1) = ”Z”,為注記點(diǎn)層/

Set p FeatureLayer = pMap . Layer (0)

Set p FeatureSelection = p FeatureLayer‘/ 指定查

詢的圖層為注記點(diǎn)層/

Case“M”‘/ 如果ZH( I , 1) = ”M”, 查詢的圖層為

面層(代碼略) /

Case“X”‘/ 如果ZH( I , 1) = ”X”, 查詢的圖層為

線層(代碼略) /

Case“D”‘/ 如果ZH ( I , 1) = ”D”, 查詢的圖層為

點(diǎn)層(代碼略) /

End Select‘/ 語句結(jié)束

Set pQueryFilter = New QueryFilter‘/ 查詢過濾器/

pQueryFilter. WhereClause = " " + ZH( I ,2) + " = " + ZH

( I ,3) + " "‘/ 創(chuàng)建查詢過濾器/

‘/ 以下Shape 文件存在,不存在創(chuàng)建,并添加地籍需要

的字段,插入選擇結(jié)果/

If Check - for - shapefile ( Path , ZH( I ,4) ) = False Then

‘/ 自己定義函數(shù),按指定路徑創(chuàng)建Shape 文件,添

加地籍需要的字段/

Fun - Create - AddField ( Path)

End If

Set pNewFeatureClass = p TargetWorkspace. OpenFea2

tureClass (ZH( I ,4) ) ‘/ 打開shape/

Set pCursor = p FeatureClass. Search ( pQueryFilter ,

False) ‘/ 執(zhí)行選擇,獲取選擇指針/

Set p Feature = pCursor. Next Feature‘/ 游標(biāo)指針指向

第一個(gè)位置的上面/

Do Until ( (p Feature Is Nothing) Or (bAbort) )‘/ 選擇

不為空,根據(jù)指針遍歷要素/

Set p Geom = p Feature. ShapeCopy

Set pBuffer. Shape = p Geom‘/ 獲取要素的空間

范圍/

For i = 0 To p Feature. Fields. FieldCount —1‘/ 返

回所有字段的數(shù)目/

‘/ 代碼略,循環(huán)選擇要素的屬性及其值/

Next

p Insert . Insert Feature pBuffer ‘/ 插入到shape

文件/

Set p Feature = pCursor. Next Feature‘/ 游標(biāo)指針

移動(dòng)到下個(gè)位置/

Loop‘/ 返回到Do 語句/

Next‘/ 移動(dòng)到數(shù)組下一行位置/

213  程序運(yùn)行結(jié)果

轉(zhuǎn)換文件是根據(jù)遼寧省城鎮(zhèn)地籍?dāng)?shù)據(jù)建庫

分類標(biāo)準(zhǔn)編寫的,利用轉(zhuǎn)換程序?qū)D形進(jìn)行分類

轉(zhuǎn)換,并利用程序添加了屬性字段,經(jīng)驗(yàn)證達(dá)到

38 現(xiàn) 代 測 繪     第30 卷

了遼寧省城鎮(zhèn)地籍?dāng)?shù)據(jù)建庫標(biāo)準(zhǔn)。

3  結(jié) 論

這種轉(zhuǎn)換方法,利用ArcMap 內(nèi)置的VBA 程

序,對DWG 數(shù)據(jù)根據(jù)轉(zhuǎn)換文件,直接進(jìn)行分類轉(zhuǎn)

換,用戶可以按需要,按圖層(Layer) 、顏色(color) 、

線形(Linetype) 、厚度( Thickness) 、塊名( Text ) 等

分類轉(zhuǎn)換,也可以要求提取部分感興趣的數(shù)據(jù),用

戶不必了解DWG 數(shù)據(jù)的存儲(chǔ)格式,只需編輯轉(zhuǎn)換

文件,程序就可以根據(jù)轉(zhuǎn)換文件,提取不同的數(shù)據(jù)

并轉(zhuǎn)為Shape 格式。本程序已經(jīng)過實(shí)際的驗(yàn)證,結(jié)

果較好。因此,對于DWG 轉(zhuǎn)為Shape 數(shù)據(jù)有一定

的意義。

參考文獻(xiàn)

1  薛偉. MapObject 地理信息系統(tǒng)程序設(shè)計(jì)[M] . 北京:國

防工業(yè)出版社,2004

2  田鵬波,劉清. AutoCAD 到Map Info 的地形圖轉(zhuǎn)換[J ] .

城市勘測, 2003 (1) : 32 - 34

3  劉光,劉小東. 地理信息系統(tǒng)二次開發(fā)教程- VB. net 和

Mapobject 實(shí)現(xiàn)[M] . 北京:清華大學(xué)出版社,2004

4  王鈺. 用VBA 開發(fā)AutoCAD 應(yīng)用程序[M] . 北京:人

民郵電出版社,1999 : 97 - 145

總結(jié)

以上是生活随笔為你收集整理的cad转shp 奥维_CAD转化为Shp的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。