Cesium中級教程5 - Terrain 地形

CesiumJS支持對與水流相關的海洋、湖泊和河流以及全球高分辨率地形進行流式處理和可視化。查看山峯、山谷和其餘地形特徵,並擁抱三維數字地球。使用Cesium ion流式化您本身的切片地形數據或高分辨率管理地形,如Cesium World Terrainjavascript

Quick Start 快速入門

打開Sandcastle的Hello World示例。默認狀況下,地球球體是WGS84 ellipsoid。經過將terrainProvider選項傳遞給Viewer,指定不一樣的地形提供器。讓咱們使用Cesium世界地形:html

Cesium.Ion.defaultAccessToken = 'your_access_token';
var viewer = new Cesium.Viewer('cesiumContainer', {
    terrainProvider : Cesium.createWorldTerrain()
});

NOTE: 建立Cesium帳號
NOTE: 本教程使用Cesium ion提供的地形。建立一個賬戶以獲取訪問令牌(access token),以便在本教程中使用地形。在這裏註冊,上面的示例代碼將自動更新爲您的令牌。若是您已經有賬戶,請登陸java

修改示例後,按F8運行該示例。縮放到山區,按住鼠標中鍵並拖動以傾斜到地平線視圖。下圖珠穆朗瑪峯的樣子:git

隨着咱們的縮放愈來愈近,CesiumJS基於地球上哪些部分可見以及它們離得有多遠來得到更高分辨率的地形。github

地形和圖像分別處理,任何圖像提供者均可以與任何地形提供者一塊兒使用。請參見Imagery Layers Tutorial以管理圖像。跨域

啓用地形照明和水體效果

Cesium世界地形還包括地形照明數據和水體效果所需的海岸線數據。默認狀況下,此數據不會隨地形圖塊一塊兒發送。若要啓用地形照明,請將requestVertexNormals設爲true並開啓全球光照。服務器

var viewer = new Cesium.Viewer('cesiumContainer', {
    terrainProvider : Cesium.createWorldTerrain({
        requestVertexNormals: true
    })
});
viewer.scene.globe.enableLighting = true;

下圖是基於太陽位置開啓地形照明的珠穆朗瑪峯的同一個視圖。cors

使用requestWaterMask以相似的方式啓用水體效果:ide

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中的地形示例全部地形提供器的參考文檔

Cesium中文網交流QQ羣:807482793

本文由 admin 創做,採用 知識共享署名 3.0 中國大陸許可協議 進行許可。 可自由轉載、引用,但需署名做者且註明文章出處。
相關文章
相關標籤/搜索