劉朝輝
河北九華勘查測繪有限責(zé)任公司,河北 保定 071000
AutoCAD軟件作為大比例尺地形圖測繪的一個基礎(chǔ)平臺,有著非常廣泛的應(yīng)用,其圖形要素的屬性都以外掛數(shù)據(jù)庫方式管理。為了使地形數(shù)據(jù)與GIS系統(tǒng)進(jìn)行對接,對CAD數(shù)據(jù)進(jìn)行GIS轉(zhuǎn)換是非常必要的。由于CAD的實(shí)體(點(diǎn)、線或面)及符號(以塊的形式組織)完全不同于GIS的數(shù)據(jù)組織格式,這些都要求找到一套較好的方案進(jìn)行批量無縫的轉(zhuǎn)換。
對于上述情況,ArcGIS提供了CAD轉(zhuǎn)換到Feature Class的幾種實(shí)現(xiàn)方法,每種方法都有其適用的場合、優(yōu)勢。
CAD文件是由諸如顏色、線型、線寬、符號等靜態(tài)圖形特征組織后的圖層集合,其圖層并沒有象GIS中的圖層那樣組織嚴(yán)密,實(shí)體/元素都包含在一個單一的文件中,屬性數(shù)據(jù)的主要描述圖層和注記。
ArcGIS在讀取CAD文件的時候,沒有按照CAD的數(shù)據(jù)組織方式分層,而是根據(jù)要素類型分層,將所有同一類型的要素放置到一個圖層上來。圖層信息存儲在layer字段。
在CAD轉(zhuǎn)換為FeatureClass的時候要素在轉(zhuǎn)換過程中,除了要素CAD的數(shù)據(jù)轉(zhuǎn)化為FeatureClass,還要將屬于同一圖層的要素打散,按照Layer字段值再次分層。在ArcGIS下有多種方式實(shí)現(xiàn)CAD轉(zhuǎn)featureClass?,F(xiàn)有的功能包括:數(shù)據(jù)互操作擴(kuò)展提供的export data功能,gp等。
在ArcGIS下有多種方式實(shí)現(xiàn)CAD轉(zhuǎn)featureclass?,F(xiàn)有的功能包括:數(shù)據(jù)互操作擴(kuò)展提供的export data功能,gp以及gp提供的示例。
這種做法比較繁瑣,分層導(dǎo)入每次都要去設(shè)置過濾屬性,效率比較低下,全手工操作,對作業(yè)人員提出了很高的要求,不適合大規(guī)模生產(chǎn)。
本文提出了一種新的數(shù)據(jù)轉(zhuǎn)換方式,其主導(dǎo)思想是:將CAD數(shù)據(jù)進(jìn)行分層處理,按地形類型及實(shí)體類型分層,在AutoCAD下進(jìn)行編輯和查錯,將編輯好的數(shù)據(jù)生成文本文件,根據(jù)各層對數(shù)據(jù)的不同要求,將擴(kuò)展屬性放入文本文件中,利用ArcEngine+c#開發(fā)轉(zhuǎn)換程序,將文本文件直接生成shp文件。
下面是具體的作業(yè)流程:
如果AutoCAD文件的層比較亂,或者各種地物混在一個層中,就需要采用人工或程序自動提取的辦法,將數(shù)據(jù)分類分層。
1)圖面表示應(yīng)滿足相關(guān)規(guī)范或規(guī)定對1:500或1:1000地形圖的要求,實(shí)體屬性應(yīng)滿足1:500或1:1000基礎(chǔ)地理信息數(shù)據(jù)的要求。全要素組織地形,相鄰分幅的數(shù)據(jù)必須作接邊處理,且分層必須統(tǒng)一;
2)文字注記應(yīng)保持其完整性,如“長安大街”,應(yīng)為一個整體,可通過軟件進(jìn)行查詢;
3)對于圖例符號,必須遵照相關(guān)國家標(biāo)準(zhǔn)制作和使用圖例及線型,且圖例和線型不能被打散;
4)建筑物、綠地、水系、橋梁、接圖表等面狀數(shù)據(jù)必須封閉為一個整體,面狀數(shù)據(jù)要有高程;
5)因不同格式的數(shù)據(jù)表達(dá)方式不同,所有信息(包括擴(kuò)展屬性)必須可讀、可提取,不能使用不能讀取的外部參照或型文件。
3.2.1 分層
序號 CAD層名 要素類 集合特征 說明1 主要建筑 主要建筑 面 建筑物2 次要建筑物 次要建筑物 面 棚房、簡易房等3 水系 河流、湖泊 面 河流、湖泊等4 綠地 綠地 面 綠地、苗圃、花壇等5 獨(dú)立地物 獨(dú)立地物 點(diǎn) 路標(biāo)、電力通訊桿等6 道路中心線 道路中心線 線 道路中心線7 注記 注記 點(diǎn) 道路名稱、單位名稱等
3.2.2 數(shù)據(jù)庫結(jié)構(gòu)
1)主要建筑物屬性表結(jié)構(gòu)
字段名 字段類型 備注Handle Char(20)材質(zhì) Char(8)樓層 Integer樓高 Decimal(8,2)高程 Decimal(8,2)……
2)道路中心線屬性表結(jié)構(gòu)
字段名 字段類型 備注Handle Char(20)名稱 Char(100)………
3)次要建筑物、綠地(水系)屬性表結(jié)構(gòu)
字段名 字段類型 備注Handle Char(20)名稱 Char(100)……
4)獨(dú)立地物屬性表結(jié)構(gòu)
字段名 字段類型 備注Handle Char(20)塊名 Char(20)旋轉(zhuǎn)角 Decimal(8,6)……
5)注記屬性表結(jié)構(gòu)
字段名 字段類型 備注Handle Char(20)注記內(nèi)容Char (100)字高 Decimal(8,2)字寬 Decimal(8,2)……
1)在地形圖上繪制一定間隔的縱線和橫線,將圖形分為若干矩形區(qū)域,按區(qū)域逐線進(jìn)行檢查,檢查CAD圖形數(shù)據(jù),確保每一建筑物注記存在且唯一(包含材質(zhì)和樓層,其中樓層為1時不能省略);
2)檢查CAD圖形網(wǎng)格線附近的建筑物確保建筑物形狀正確且閉合(主要是由于分幅產(chǎn)生的建筑物分隔錯誤);
3)使用程序單獨(dú)提取“建筑物和注記”層,并另存為“建筑物和注記.dwg”文件;
4)使用程序?qū)ㄖ镞M(jìn)行拓?fù)錂z查,以下是具體命令及說明:
各命令運(yùn)行順序:
注意:以上檢查請多次重復(fù)使用直至沒有錯誤。
5)使用程序給建筑物添加擴(kuò)展屬性。
1)新建“綠地”層,在地形圖上繪制一定間隔的縱線和橫線,將圖形分為若干矩形區(qū)域,按區(qū)域逐線進(jìn)行檢查,查圖使地形圖綠地在“綠地”層下并且保證綠地都是閉合的;
2)單獨(dú)提取“綠地”層,并另存為“綠地.dwg”文件;
3)使用程序?qū)G地進(jìn)行拓?fù)錂z查,以下是具體命令及說明:
智能家居和樣板房的諸多理論設(shè)想和人性化設(shè)計(jì)都已經(jīng)碩果累累,但是其展示和體驗(yàn)效果卻始終不盡如人意,在設(shè)計(jì)和展示之間存在較大的鴻溝,需一個傳達(dá)媒介來提升體驗(yàn)感。本文基于Unity3D 平臺,結(jié)合虛擬樣板房的設(shè)計(jì)理念及概念,設(shè)計(jì)和實(shí)現(xiàn)了一個具備沉浸式、交互式體驗(yàn)感的樣板房設(shè)計(jì)和智能家居的展示系統(tǒng),有助于客戶更真實(shí)地體驗(yàn)樣板房和智能家居設(shè)計(jì)效果、設(shè)計(jì)師修改家裝設(shè)計(jì)和建造者調(diào)整建筑方案。
運(yùn)行順序:
注意:以上檢查請多次重復(fù)使用直至沒有錯誤。
新建“獨(dú)立地物”層,根據(jù)要素名稱提取這三層要素,并另存為“獨(dú)立地物.dwg”文件。
1)新建“水系”層,在地形圖上繪制一定間隔的縱線和橫線,將圖形分為若干矩形區(qū)域,按區(qū)域逐線進(jìn)行檢查,查圖使河流,湖泊等水系置于“水系”層下并且保證水系都是閉合的;
2)單獨(dú)提取“水系”層,并另存為“水系.dwg”文件;
3)使用程序?qū)λ颠M(jìn)行拓?fù)錂z查,以下是具體命令及說明:
注意:以上檢查請多次重復(fù)使用直至沒有錯誤。
1)新建“道路”層,在地形圖上繪制一定間隔的縱線和橫線,將圖形分為若干矩形區(qū)域,按區(qū)域逐線進(jìn)行檢查,查圖使道路置于“道路”層下并且保證道路都是閉合的;
2)單獨(dú)提取“道路”層,并另存為“道路.dwg”文件;
3)使用程序?qū)Φ缆愤M(jìn)行拓?fù)錂z查,以下是命令及說明:
注意:以上檢查請多次重復(fù)使用直至沒有錯誤。
1)新建“道路中心線”層,在地形圖上繪制一定間隔的縱線和橫線,將圖形分為若干矩形區(qū)域,按區(qū)域逐線進(jìn)行檢查,查圖使道路中心線置于“道路中心線”層,在十字路口、丁字路口處道路中心線斷開;
2)單獨(dú)提取“道路中心線”層,并另存為“道路中心線.dwg”文件;
3)對道路添加擴(kuò)展屬性(道路名稱)。
在CAD下將各層數(shù)據(jù)分別輸出txt文件,再轉(zhuǎn)為.shp文件入庫。
利用該轉(zhuǎn)換方式將CAD數(shù)據(jù)轉(zhuǎn)換ArcGIS的數(shù)據(jù),不僅保證數(shù)據(jù)的完整性和可使用性,且轉(zhuǎn)換效率也有很大提高,能夠進(jìn)行大批量的自動處理。借助此方式我們可以實(shí)現(xiàn)CAD與GIS的數(shù)據(jù)交互,為GIS在工程設(shè)計(jì)領(lǐng)域進(jìn)行雙向集成提供了技術(shù)基礎(chǔ)。
[1]陳建飛,等.地理信息系統(tǒng)導(dǎo)論[M].北京:科學(xué)出版社,2010.
[2]陳建飛,等.基于VBA的ArcObjects編程——面向任務(wù)的方法[M].北京:科學(xué)出版社,2010.
[3]邱洪剛等.ArcGIS Engine開發(fā)從入門到精通[M].北京:人民郵電出版社,2010.
[4]《1:5001:10001:2000地形圖圖式》GB/T7929-1995[S].北京:中國標(biāo)準(zhǔn)出版社,1996.