Cesium中級教程5
Cesium中文網:http://cesiumcn.org/ | 國內快速訪問:http://cesium.coinidea.com/
CesiumJS支援對與水流相關的海洋、湖泊和河流以及全球高解析度地形進行流式處理和視覺化。檢視山峰、山谷和其他地形特徵,並擁抱三維數字地球。使用Cesium ion流式化您自己的切片地形資料或高解析度管理地形,如Cesium World Terrain。
Quick Start 快速入門
開啟Sandcastle的Hello World示例。預設情況下,地球球體是WGS84 ellipsoid。通過將terrainProvider選項傳遞給Viewer,指定不同的地形提供器。讓我們使用Cesium世界地形:
Cesium.Ion.defaultAccessToken = 'your_access_token';
var viewer = new Cesium.Viewer('cesiumContainer', {
terrainProvider : Cesium.createWorldTerrain()
});
NOTE: 建立Cesium賬號 NOTE: 本教程使用Cesium ion提供的地形。建立一個帳戶以獲取訪問令牌(access token),以便在本教程中使用地形。在這裡註冊,上面的示例程式碼將自動更新為您的令牌。如果您已經有帳戶,請登入。
修改示例後,按F8執行該示例。縮放到山區,按住滑鼠中鍵並拖動以傾斜到地平線檢視。下圖珠穆朗瑪峰的樣子:
隨著我們的縮放越來越近,CesiumJS基於地球上哪些部分可見以及它們離得有多遠來獲得更高解析度的地形。
地形和影象分別處理,任何影象提供者都可以與任何地形提供者一起使用。請參見Imagery Layers Tutorial以管理影象。
啟用地形照明和水體效果
Cesium世界地形還包括地形照明資料和水體效果所需的海岸線資料。預設情況下,此資料不會隨地形圖塊一起傳送。若要啟用地形照明,請將requestVertexNormals設為true並開啟全球光照。
var viewer = new Cesium.Viewer('cesiumContainer', { terrainProvider : Cesium.createWorldTerrain({ requestVertexNormals: true }) }); viewer.scene.globe.enableLighting = true;
下圖是基於太陽位置開啟地形照明的珠穆朗瑪峰的同一個檢視。
使用requestWaterMask以類似的方式啟用水體效果:
var viewer = new Cesium.Viewer('cesiumContainer', {
terrainProvider : Cesium.createWorldTerrain({
requestWaterMask: true
})
});
縮放到有水的區域以檢視效果。這裡是舊金山灣:
隨著時間的推移,水波波動和明亮的鏡面反射太陽和月亮的光。通過使用** Globe.oceanNormalMapUrl**用於建立波浪來自定義水效果。更改影象提供者也會影響水的外觀,因為水的顏色與底層影象混合。改變圖層提供器也會改變水體效果的呈現,因為水體的顏色會和底下的圖層混合渲染。
請參閱Sandcastle的地形示例,探索一些有趣的地形和水體效果區域。
準備流式化地形
Cesium World Terrain: 高分辨世界地形,同時擴充套件支援地形照明和水體效果。Cesium Worl Terrain支援通過Cesium ion線上訪問,也支援付費下載,離線訪問。將它加入到Cesium應用中,將快速提高地形視覺化效果。 Cesium World Terrain也可以通過on-premise獲得。
Terrain providers 地形提供器
Cesium基於地形提供器支援請求地形的若干種方法。大多數地形提供器使用HTTP上的REST介面來請求地形切片。地形提供器根據請求的格式和地形資料的組織方式而有所不同。CesiumJS支援以下地形提供器:
- CesiumTerrainProvider: 支援量化網格地形切片,針對地形流進行了優化。相容Cesium ion所服務的地形和來自[3D tiling pipeline])(/3d-tiling-pipeline/terrain/)的輸出資料。
- GoogleEarthEnterpriseTerrainProvider: 支援由您的Google Earth Enterprise伺服器生成的高程地圖地形。
- VRTheWorldTerrainProvider: 支援從VT MAK VR-TheWorld Server伺服器請求的高度地圖地形圖。
- EllipsoidTerrainProvider:按照程式建立橢球的表面。缺乏地形的真實外觀,但不從伺服器請求資料。
地形提供器的構造與圖層提供器類似,如果伺服器不支援跨域資源共享CORS,則通常包括地形伺服器的URL和可選的代理。
資源
檢視Sandcastle中的地形示例和所有地形提供器的參考文件。
> 本文由 admin 創作,採用 知識共享署名 3.0 中國大陸許可協議 進行許可。 可自由轉載、引用,但需署名作者且註明文章出處。
Cesium中文網交流QQ群:807482793
Cesium中文網:http://cesiumcn.org/ | 國內快速訪問:http://ces