本發(fā)明涉及一種基于河道CAD數(shù)據(jù)的三維仿真系統(tǒng)的構(gòu)造方法,基于河道的CAD數(shù)據(jù),利用SketchUp建模軟件進(jìn)行建模、通過ArcScene平臺驅(qū)動三維場景并利用ArcGIS Engine進(jìn)行二次開發(fā),是三維GIS在水利信息化領(lǐng)域的有益探索。
背景技術(shù):
當(dāng)前,三維可視化方法在各行各業(yè)都實現(xiàn)對三維地物或建筑的立體描述,對建筑的紋理也能細(xì)致的表達(dá),也能驅(qū)動三維場景,給用戶帶來良好的用戶體驗。但在,三維河流可視化方面,研究人員偏向于對洪水淹沒方面的研究。由于河流區(qū)域廣泛,三維建模的過程復(fù)雜,操作難度大,需要大量的人力、物力。
因此本發(fā)明提供一種基于河道CAD數(shù)據(jù)的三維仿真系統(tǒng)的構(gòu)造方法,采用ArcGIS與SketchUp相結(jié)合的方法快速和方便的對三維創(chuàng)意進(jìn)行創(chuàng)建、修改和渲染,從而實現(xiàn)三維模型的建立,并且利用ArcGIS Engine平臺的可視化空間,開發(fā)出一個獨(dú)立于GIS平臺的三維數(shù)字應(yīng)用系統(tǒng)。
技術(shù)實現(xiàn)要素:
發(fā)明目的:針對現(xiàn)有技術(shù)中存在的問題,本發(fā)明提供一種SketchUp和ArcGIS相結(jié)合的方法,為更好地進(jìn)行河流管理提供了基礎(chǔ)信息平臺。
技術(shù)方案:一種基于河道CAD數(shù)據(jù)的三維仿真系統(tǒng)的構(gòu)造方法,首先是對河道的CAD規(guī)劃底圖的整理,去除建模無用數(shù)據(jù)、分塊畫點(diǎn)和統(tǒng)一參考平面處理。規(guī)劃底圖中數(shù)據(jù)具有較多的對建模無用的數(shù)據(jù),如控制點(diǎn)、標(biāo)注信息及設(shè)計規(guī)劃區(qū)以外的地物標(biāo)志等。特別是具有太多的碎線和亂線,面、線存在不閉合現(xiàn)象。為了建模后能更精確更方便地進(jìn)行拼接,先在分成的幾塊的各個邊界上畫上一些點(diǎn)(等高線與邊界的交點(diǎn)),這樣在拼接時,就不會發(fā)生錯位現(xiàn)象,不需要每條進(jìn)行修改,只需選擇邊界兩邊的等高線進(jìn)行合并即可。另外,導(dǎo)入的數(shù)據(jù)會存在標(biāo)高不一致,導(dǎo)入時出現(xiàn)立體線,層面不一致等情況,此時可以通過統(tǒng)一設(shè)置導(dǎo)入到sketchup中的CAD底圖的z值為0達(dá)到同一參考平面。
其次,對紋理數(shù)據(jù)的處理,一般是通過高分辨率的數(shù)碼相機(jī)拍攝的相片,通過Photoshop等軟件處理后得到地物紋理信息。在SketchUp中構(gòu)建三維模型程序更為簡單,主要步驟包括:從CAD數(shù)據(jù)中導(dǎo)入上述整理后的平面,利用SketchUp將平面數(shù)據(jù)推拉成體,后期進(jìn)行貼圖渲染和美化。其中,將CAD數(shù)據(jù)導(dǎo)入過程中,SketchUp和CAD要具有相同的單位,不然會出現(xiàn)導(dǎo)入數(shù)據(jù)錯誤。完成河流的建模工作后,通過格式轉(zhuǎn)換的方式將模型格式轉(zhuǎn)換為ArcGIS支持的多面體模型Multipatch格式,并為模型添加一些屬性信息。
本發(fā)明方法的主要實現(xiàn)步驟如下:
步驟1:對現(xiàn)有的河道CAD數(shù)據(jù)進(jìn)行去除建模無用數(shù)據(jù)、分塊畫點(diǎn)和統(tǒng)一參考平面,得到處理好的CAD數(shù)據(jù);
步驟2:將處理好的CAD數(shù)據(jù)導(dǎo)入SketchUp并利用其豐富的功能方便、快捷地實現(xiàn)三維系統(tǒng)的場景建模,用“推/拉”工具,放于導(dǎo)入的CAD圖表面上,單擊鼠標(biāo)并向上移動,在右下角尺寸輸入框中,用鍵盤輸入高度值,按回車確認(rèn)。即建立完成了立方體,然后在模型表面貼上紋理圖片;
步驟3:把建立的三維模型轉(zhuǎn)換成Multipatch(*.mdb)格式,再把mdb格式的三維模型添加到ArcScene三維平臺中從而將整個河流三維數(shù)字可視化;
步驟4:實現(xiàn)三維場景的瀏覽;
步驟5:實現(xiàn)河道屬性查詢功能;
步驟6:實現(xiàn)沿河道飛行功能。
獲取水面所在圖層ILayer layer=axSceneControl1.SceneGraph.Scene.get_Layer(n);
然后加載無人機(jī)模型
pmark3dsymbol.CreateFromFile("...");
最后切換視角
ICamera camera=axSceneControl1.SceneViewer.Camera;
優(yōu)選地,所述步驟1中,在導(dǎo)入CAD文件前要清理一下CAD中標(biāo)注、文字等無關(guān)數(shù)據(jù)和圖層,這樣在后面開展的SketchUp建模工作中就可以避免無關(guān)數(shù)據(jù)的干擾,方便3D河道建模的進(jìn)行,同時也可以減少計算機(jī)內(nèi)存的占用。
優(yōu)選地,所述步驟3中,完成河流的建模工作后,通過在arctoolbox中,3D Analyst tools/conversion/from TIN/layer 3D to feature class/起名存儲轉(zhuǎn)換的方式將模型格式轉(zhuǎn)換為ArcGIS支持的多面體模型Multipatch格式。
優(yōu)選地,所述步驟3中,采用Google SketchUp和ArcGIS相結(jié)合的方法將河流場景三維可視化與三維空間對象管理耦合起來形成3D可視化的集成系統(tǒng)。
本發(fā)明采用上述技術(shù)方案,具有以下有益效果:用戶可以進(jìn)行三維場景瀏覽、信息查詢,能夠進(jìn)行河流二維平面圖和河流三維場景的展示,具有三維景觀動態(tài)觀察及飛行功能,支持框選放大和縮小等,以便從整體和局部兩個不同的角度更好的進(jìn)行場景瀏覽,并可以以圖片的形式導(dǎo)出場景;提供信息查詢,使得系統(tǒng)具有一定的實用性。河流的三維瀏覽功能要給用戶一種身臨其境的感覺,坐在船上在河里運(yùn)動的感覺。三維場景的展示可以給人們提供真實直觀的感受,通過放大縮小等功能可以查看細(xì)部效果和全景場景,但對于河流斷面的屬性信息,如斷面名稱,位置,河寬,設(shè)計圖等無法直接以場景的形式展現(xiàn)。
附圖說明
圖1為本發(fā)明實施例的流程圖。
具體實施方式
下面結(jié)合具體實施例,進(jìn)一步闡明本發(fā)明,應(yīng)理解這些實施例僅用于說明本發(fā)明而不用于限制本發(fā)明的范圍,在閱讀了本發(fā)明之后,本領(lǐng)域技術(shù)人員對本發(fā)明的各種等價形式的修改均落于本申請所附權(quán)利要求所限定的范圍。
如圖1所示,基于河道CAD數(shù)據(jù)的三維仿真系統(tǒng)的構(gòu)造方法,包括如下步驟:
步驟1:整理CAD規(guī)劃底圖。刪除CAD規(guī)劃底圖中對建模無用的數(shù)據(jù),如控制點(diǎn)、標(biāo)注信息及設(shè)計規(guī)劃區(qū)以外的地物標(biāo)志等。
步驟2:構(gòu)建三維模型。將整理后的CAD規(guī)劃底圖導(dǎo)入到SketchUp中,推拉成體。導(dǎo)入的數(shù)據(jù)會存在標(biāo)高不一致,導(dǎo)入時出現(xiàn)立體線,層面不一致等情況,此時可以通過統(tǒng)一設(shè)置z值為0達(dá)到同一參考平面。SketchUp和CAD要具有相同的長度單位,不然會出現(xiàn)導(dǎo)入數(shù)據(jù)錯誤。單位可以在文件→導(dǎo)入→選項中進(jìn)行設(shè)置。CAD中默認(rèn)單位一般是毫米(mm),所以在導(dǎo)入過程中Google SketchUp的單位最好也設(shè)置成mm。根據(jù)CAD圖上的標(biāo)注找到堤壩線條,使用封面插件將兩根堤壩線條之間的空白封成一個平面,之后推拉出高度,再用移動工具拉伸堤壩將坡比拉伸為1:3,同時將瀝青路面也推拉相同高度;然后,將河流的主要標(biāo)志性建筑如大橋、涵洞和排澇站等都通SketchUp制作出來;最后,添加相應(yīng)的紋理。
步驟3:整合模型,根據(jù)步驟2中所構(gòu)建的模型,將多段河流在ArcScene中進(jìn)行整合,等高線與邊界的交點(diǎn)之間會自動對應(yīng),拼接。
步驟4:搭建三維可視化場景。通過ArcGIS工具的使用,導(dǎo)入SketchUp模型為Multipatch數(shù)據(jù)。首先,需要在ArcCatalog模塊中首先創(chuàng)建一個Personal Geodatabase數(shù)據(jù)庫,同時在其數(shù)據(jù)庫中建立一個Multipatch的Feature Class并設(shè)置圖層所在站點(diǎn)編號,再通過ArcGIS軟件中Import3Dfile工具,導(dǎo)入SketchUp到Multipatch實現(xiàn)轉(zhuǎn)換。在這個過程中需要注意,當(dāng)模型導(dǎo)入ArcScene中后,模型丟失了原有的貼圖和紋理。在ArcScene中,打開3D Editor/start editing/選中要替換的對象/3D Editor/replace with model/選擇在Google SketchUp中導(dǎo)出的模型導(dǎo)入,即可替換掉原來的模型,停止編輯,刷新一下,貼圖紋理就都出來了。河流上的景觀如大橋、涵洞、排澇站水閘以及一些斷面標(biāo)志則以style符號庫導(dǎo)入到ArcScene中。
步驟5:實現(xiàn)主要功能,其中具體包括:三維場景瀏覽模塊、信息查詢模塊。三維場景瀏覽模塊利用ArcGIS中的Engine開發(fā)組件,編寫控制三維模型沿著線段飛行的程序
使3D模型在三維場景中沿著指定路徑漫游,從而實現(xiàn)河流的巡航功能。信息查詢模塊根據(jù)屬性值進(jìn)行查詢。