1. 程式人生 > >CityEngine使用GIS模板創造三維數字城市(二)

CityEngine使用GIS模板創造三維數字城市(二)

上一節介紹了將二維資料轉化為三維資料,並作為CityEngine的基礎資料。下面介紹的過程中建立三維費城的二維和三維地理資訊系統資料。使用的資料是虛擬城市模板的一部分。

1、下載數字城市模板

有兩種方法下載數字城市的模板:

2、啟動CityEngine,選單File -> Help -> Download Tutorials and Examples Examples選項卡中Philadelphia例子既可以,如圖1所示

 

1下載模板

2載入數字城市模板

如果在CityEngine模板庫中,下載模板則需要將模板匯入到CityEngine工作空間中:

1、選單File -> import -> Project -> existing project into workspace

,如圖2所示:

 

2匯入模板到工作空間中

2、在 Select archive file選擇項中選擇 Example_Philadelphia.zip檔案。在Project選項卡中選擇Example_Philadelphia__2011_1,點選Finish即可。

 

3匯入模板

3建立新的場景

這個模板中已經有3個已經準備好的場景,您可以雙擊這些場景進行瀏覽,如圖4所示:

 

4現有場景

現在讓我們從頭開始,建立一個新的場景。選單File->New->CityEngine->CityEngine scene ,選擇專案的場景目錄,給它一個名稱和設定座標系統(EPGS:2272)

如圖5所示:

 

5建立場景

4新增地形和影像

Example_Philadelphia__2011_1/data/DEM目錄下面找到DEM_burn.tif,選中它然後將它拖動到視窗裡面(viewport)。在Choose coordinate system for ‘DEM_burn.tif’對話方塊中選中同樣的座標系(EPGS:2272)。在彈出的Terrain對話方塊中,Texture file選項卡中選擇貼在地形上的影像(data/basemap/Philly_basemap3.tif)。如圖6所示

 

6選擇影像

點選Finish按鈕,按“f”鍵盤場景放大到資料的位置。如圖7

所示

 

7地形和影像

5新增GIS資料

Example_Philadelphia__2011_1/data目錄下面找到Results.gdb,選中它然後將它拖動到視窗裡面(viewport)。在File Geodatabase Import對話方塊中(如圖8所示),點選Finish,將GIS資料載入到了場景中如圖9所示:

 

8 File Geodatabase Import對話方塊

 

9 GIS資料

6使用規則

1、使用向量建築輪廓和屬性建立三維建築

A、選擇Building1_footprints3D”圖層的所有物件:可以選中圖層上的一個物件,右鍵選單 Select->Select Objects in the Same Layer選中該圖層上的所有物件,如圖10所示:

 

10選擇同一圖層上的所有物件

B、在Example_Philadelphia__2011_1/rules目錄下面找到GIS-Driven buildings.cga規則檔案,選中它然後將它拖動到“Building1_footprints3D”圖層選中的所有物件上。向量物件按照GIS-Driven buildings檔案中的規則產生三維模型,如圖11所示:

 

11 GIS-Driven building規則產生模型

C、這個規則使用了GIS資料中的屋檐高度(Eave_Ht),脊高(Ridge_Ht)和屋頂樣式(Roof _Form)等屬性資料來生成三維建築。使用規則建立模型的優勢是,您可以通過改變規則來輕鬆地修改模型。例如,選擇一個感興趣的建築開啟Inspector對話方塊,可以修改屋檐高度,脊高,屋頂樣式、側面紋理和屋頂紋理等屬性,如圖12所示:

 

12修改模型屬性

2、使用建築輪廓匯入已有三維模型

如果您已經有了一些三維模型,這些模型都是通過第三方建模軟體生成的。有兩種方式可以將這些模型匯入到CityEngine中:

A、如果模型帶有地理座標,例如dae/kml檔案,可以直接將這些檔案拖到CityEngine中。也是使用選單File->Import使用匯入對話方塊工具,將一個目錄下面的所有*.kml檔案匯入到場景中。

B、如果模型沒有位置資訊,您可以使用向量建築物輪廓來為模型定位。選擇Building2_footprints3D圖層上的所有向量物件,在Example_Philadelphia__2011_1/ rules目錄下面找到Collada_Buildings.cga規則檔案,選中它然後將它拖動到Building2_footprints3D圖層選中的所有物件上。即可將已有的模型按照地理位置匯入到CityEngine場景中,如圖13

 

13匯入已有模型

注:1、可以看到CityEngine可以很好的支援已有三維模型,CityEngine可以很非常方便模型的進行模型修改或更新。

2、選擇所有向量物件的時候,可以選擇某一個模型然後右鍵選單 Select->Select Objects in the Same Layer。還可以在Scene對話方塊(如圖14所示)上關閉其他向量圖層,軟後Ctrl+A,選中開啟圖層中的所有物件。

 

14關閉其他圖層

3、建立植物和街道設施

GeoDatabase中的植物點資料,它提供了植物的位置並且帶有植物的大小和型別等屬性。根據這些資料可以將已有的三維模型按照正確的大小匯入到場景中。選擇Vegetation3D layer圖層上的所有向量物件。在Example_Philadelphia__2011_1/ rules目錄下面找到Vegetation.cga規則檔案,選中它然後將它拖動到Vegetation3D laye圖層選中的所有物件上。同樣的方式選中StreeFurniture3D layer圖層上的所有向量物件,將Street Furniture.cga規則賦予它們,效果如圖15所示:

 

15植物和街道設施

4、建立街道

從圖16上可以看到街道向量部分插入到了地面裡面。

 

16街道陷入地形

這是由高程的精度低或者構建街道的三角網稀疏造成的,可以在CityEngine中進行調整:選擇Streets3D layer上的所有向量物件,選單Layer->Align Shapes To Terrain,在Align Terrain對話方塊(如圖17所示)上Maximal raise distance選項卡中選擇1米,點選Apply按鈕。

 

17調整地形

選擇Streets3D layer上的所有向量物件,賦予Street Construction.cga規則,可以在Inspector對話方塊調整中調整Vehicles per kmPeople percentage為道路新增一些車輛和行人,如圖18所示:

 

18建立街道

7匯出結果

3D城市建立完成後,可以使用CityEngine進行瀏覽也可以將建立好的模型匯入到ArcGIS中以進行海量資料的瀏覽和更深入的分析。將模型匯入到ArcGIS中可以先將模型匯出成COLLADA (dae),更詳細的操作請關注系列文章《使用GIS模板創造三維數字城市(三)》。