Cesium入門7 - Adding Terrain - 新增地形
Cesium入門7 - Adding Terrain - 新增地形
Cesium中文網:http://cesiumcn.org/ | 國內快速訪問:http://cesium.coinidea.com/
Cesium支援流式的、視覺化的全球高程投影地形地勢、水形資料,包括海洋、湖泊、河流、山峰、峽谷和其他能夠被三維展示出來的且效果比二維好的地形資料。像圖層資料一樣,Cesium引擎會從一個伺服器上請求流式地形資料,僅請求那些基於當前相機能看到的需要繪製的圖層上的資料。
Cesium官方提供了一些地形資料集的例子,以及如何配置這些引數。
- ArcticDEM : 高投影的arctic terrain
- PAMAP Terrain : 高投影的Pennsylvania terrain
- Terrain display options : 一些地形資料配置和格式
- Terrain exaggeration : 是地形間的高度差異更加的優雅藝術
支援的地形資料格式
- Quantized-mesh, Cesium團隊自己開源的一種格式
- Heightmap
- Google Earth Enterprise
為了新增地形資料,我們需要建立一個CesiumTerrainProvider,提供一個url和一些配置想,然後將這個provider賦值給viewer.terrainProvider
此處,我們使用Cesium WorldTerrian圖層,該圖層由Cesium ion提供,在“My Assets”中是預設提供的。我們可以用createWorldTerrainhelper函式建立一個由Cesium ion提供服務的Cesium WorldTerrian。
// Load Cesium World Terrain viewer.terrainProvider = Cesium.createWorldTerrain({ requestWaterMask : true, // required for water effects requestVertexNormals : true // required for terrain lighting });
requestWaterMask和requestVertexNormals是可選的配置項,告訴Cesium是否需要請求額外的水、光資料。這兩個選項預設是設為false的。
最終,既然我們有了地形資料,我們需要更多的線條來使得地形資料背後的objects能夠正確地顯示,只有最前面、最上面的objects才能是可見的。
// Enable depth testing so things behind the terrain disappear.
viewer.scene.globe.depthTestAgainstTerrain = true;
我們現在有地形資料和運動的水。紐約非常平坦,所以可以在上面的地形資料上自由的探索。舉一個顯而易見的例子,你可以跳轉到更加崎嶇的區域比如 Grand Canyon 或者 San Francisco。
關於地形資料的更多資訊,請訪問Terrain Tutorial
Cesium中文網交流QQ群:807482793
Cesium中文網:http://cesiumcn.org/ | 國內快速訪問:http://cesium.coinidea.com/