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

淺談SHAPE文件轉換到CAD文件的方法

2018-03-20 07:25:57李云尚余向東
資源環境與工程 2018年1期
關鍵詞:程序內容結構

李云尚, 余向東

(湖北省地質局 地球物理勘探大隊,湖北 武漢 430056)

ArcGIS 是目前廣泛使用的一種地理信息系統軟件,主要用來制圖、數據分析、各種專業地理信息系統的二次開發等。Shapefile文件是ArcGIS的基礎文件類型,它主要用來存儲點、線、多邊形等幾何對象的坐標信息和屬性信息。目前很多城市的規劃管理部門的地理地圖都是采用Shapefile文件格式儲存,而勘察部門基本都是使用CAD的dwg文件格式,因此,需要將Shapefile格式文件轉換成為dwg格式文件。

1 Shape文件的組成與結構

ArcGIS的一個Shapefile文件實際上是一個文件夾,它里面主要包含一個主文件(xxx.shp),一個索引文件(xxx.shx),一個dbase格式的屬性文件(xxx.dbf)。這三個文件中的數據既相互聯系有各有區別,主文件(xxx.shp)是儲存坐標信息(空間位置),由固定長度的文件頭和變長度空間數據記錄組成;索引文件(xxx.shx)是對主文件的索引,主要包含坐標文件的索引信息;屬性文件(xxx.dbf)記錄屬性信息(地名,單位名,長度,高程,子圖名,編碼等),它是一個標準的DBF文件,是由頭文件和實體信息兩部分構成。

1.1 主文件(xxx.shp)的組織結構

xxx.shp文件由文件頭和文件記錄構成,而每個記錄是由固定長度的記錄頭和變長度的記錄內容組成。

1.1.1 主文件頭的組織結構

主文件頭是100個字節的固定長度,以下是它的部分結構(表1)。

表1 主文件頭結構表Table 1 Structure table of main file header

注:位置是指開始字節到文件頭第一字節的偏移量,長度從0~99,剛好100個字節。

1.1.2 主文件記錄的組織結構

每條記錄由記錄頭和記錄內容兩部分組成,記錄頭結構見表2。

表2 記錄頭結構表Table 2 Structure table of record header

記錄內容對于不同的Shapefile文件類型而不一樣,長度也不一樣,以二維點(point)類型的文件記錄內容來說明(表3)。

所以二維點文件的記錄內容長度是4+8+8=20

表3 二維點文件記錄內容說明表Table 3 Explanatory table of 2d document content

個字節,每條記錄的長度是4+4+20=28個字節,也就是14個字,是個固定長度(0是指到記錄內容的開始字節的偏移量)。

1.2 xxx.dbf文件的結構

DBF文件是dbase格式的數據文件,它記錄.shp文件的屬性數據,它在.shp文件中有特殊規定:

(1) 文件名前綴必須與xxx.shp和xxx.shx一樣。

(2) 每一個圖形特征必須在一個記錄內。

(3) 記錄順序必須與xxx.shp文件的記錄順序一樣。

2 利用VB將二維點文件轉換為CAD文件

2.1 利用VB將二維點文件轉換為CAD文件的程序流程圖1

圖1 二維點文件轉換為CAD文件流程圖Fig.1 Flow chart of conversion of two dimensional point files into CAD file

2.2 xxx.shp文件和xxx.dbf文件的打開和讀取

利用二進制方式打開.shp文件,利用數據對象連接和打開.dbf文件,以下是程序片段:

Open FileName For Binary As #2 //打開.shp文件

ReDim myx(3)As Byte

Get #2,25,myx //從第25字節處開始讀入4個字節

P=Val(b_l_h(myx))* 2 //計算文件總字節長度

Close #2 //關閉.shp文件

Set mywks=DBEngine.Workspaces(0) //創建工作空間

Set mydb=mywks.OpenDatabase(pathstr,True,True,“dbase 5.0”) //打開指定的數據庫

Set myrs=mydb.OpenRecordset(filedbf,dbOpenSnapshot) //打開指定的表,創建記錄集對象

Set mytab=mydb.TableDefs(filedbf) //創建表定義對象

........

k=(p-100)/28 //計算.shp文件的記錄個數

........

Open FileName For Binary As #4 //二進制打開.shp文件

For i=1 To k

mystr=myrs.Fields(findval).Value //讀取.dbf 文件第i行記錄的指定字段的值

Set cad3dpoint=New clsmypoint //創建自定義對象實例

cad3dpoints.Add cad3dpoint //自定義對象添加到集合中

Set cad3dpoint=Nothing //對象清空

myrs.MoveNext //將記錄對象的記錄指針移到下一個記錄

Next i

Close #4 //關閉.shp文件

myrs.Close //關閉記錄對象

mydb.Close //關閉數據庫對象

2.3 在AutoCad程序中展示二維點和屬性值

程序片段如下:

Set myx1.acadapp=GetObject(,“autocad.Application”) //引用cad應用程序對象

Set myx2.acaddoc=myx1.acadapp.ActiveDocument //引用一個cad活動文檔對象

.........

geshu=cad3dpoints.Count //返回集合中對象的個數

For i=1 To geshu

Set cad3dpoint=New clsmypoint //創建自定義對象的實例

Set cad3dpoint=cad3dpoints.Item(i) //集合中的對象賦值給自定義對象

cad3dpoint.mylayer=layerming //給自定義對象的圖層屬性賦值

cad3dpoint.zhandian //調用自定義對象方法創建cad點對象

cad3dpoint.zhantext //調用自定義對象方法創建cad文本對象

Set cad3dpoint=Nothing //對象清空

Next i

3 結論

通過上述文件的分析和代碼演示,向大家展示了怎樣用VB程序將Shapefile文件轉換成cad文件的一般過程。通過工程實際運用,證實此方法確實可行,既方便又靈活,可以滿足很多個性化的需求。

[1] 張國寶.AutoCAD 2000 VBA開發技術[M].北京:清華大學出版社,2000.

[2] 楊冬.Shapefile圖形文件的數據存儲格式及讀寫[J].首都師范大學學報(自然科學版),2010,31(2):4-8.

猜你喜歡
程序內容結構
內容回顧溫故知新
科學大眾(2022年11期)2022-06-21 09:20:52
《形而上學》△卷的結構和位置
哲學評論(2021年2期)2021-08-22 01:53:34
論結構
中華詩詞(2019年7期)2019-11-25 01:43:04
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
論《日出》的結構
主要內容
臺聲(2016年2期)2016-09-16 01:06:53
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
創新治理結構促進中小企業持續成長
現代企業(2015年9期)2015-02-28 18:56:50
主站蜘蛛池模板: 亚洲乱码视频| 中文字幕日韩欧美| 99久久精品国产自免费| 亚洲无限乱码| 国产午夜福利亚洲第一| 欧美a级完整在线观看| 亚洲无码A视频在线| 老熟妇喷水一区二区三区| 国产在线精品99一区不卡| 国产aⅴ无码专区亚洲av综合网| 欧美不卡视频一区发布| 啪啪啪亚洲无码| 国产成人综合亚洲欧美在| av无码久久精品| 亚洲精品在线91| 成年看免费观看视频拍拍| 毛片三级在线观看| 亚洲一级无毛片无码在线免费视频 | 国内丰满少妇猛烈精品播| 天天综合网色| 极品私人尤物在线精品首页| 国产一区二区三区日韩精品| yjizz视频最新网站在线| 日韩在线视频网| 国产激情在线视频| a毛片在线| 亚洲国产精品不卡在线| 国产在线视频自拍| 亚洲男人天堂久久| 国产精品成人啪精品视频| 国产激情无码一区二区三区免费| 色有码无码视频| 国产精品女主播| 在线中文字幕日韩| 欧美.成人.综合在线| 国产精品99久久久久久董美香| 久久久成年黄色视频| 好紧太爽了视频免费无码| 国产又爽又黄无遮挡免费观看| 亚洲欧美日韩中文字幕一区二区三区| 毛片视频网| 久草热视频在线| 91小视频在线观看免费版高清| yjizz视频最新网站在线| 四虎永久免费地址在线网站| 看国产毛片| 亚洲第一成年免费网站| 久久情精品国产品免费| 精品自窥自偷在线看| 午夜a视频| 久久99国产综合精品1| 99无码熟妇丰满人妻啪啪| 午夜电影在线观看国产1区| 极品国产在线| 欲色天天综合网| 久久99精品国产麻豆宅宅| 国产制服丝袜91在线| 一本大道东京热无码av| 天堂岛国av无码免费无禁网站| 亚洲一区二区三区香蕉| 国产精品第页| 免费看美女自慰的网站| 久久亚洲精少妇毛片午夜无码| 福利视频久久| 日本国产精品| 国产高清色视频免费看的网址| 国产成人免费| 精品久久高清| 波多野结衣一区二区三区四区| 国产91高跟丝袜| 国产男人的天堂| 国产激情无码一区二区免费| 亚洲中文字幕无码爆乳| 国产91九色在线播放| 青青操国产视频| 狠狠久久综合伊人不卡| 亚洲精品国产精品乱码不卞| 欧美激情第一区| 欧美福利在线播放| 最新国产麻豆aⅴ精品无| 亚洲欧美日韩成人在线| 国产精品成人一区二区|