Cesium提供了多种现有地形数据服务接口,并且支持自定义地形数据。
CesiumTerrainProvider:高精度全球地形数据,附有光照和水面效果。地形切片使用quantized-mesh v1.0格式,Cesium使用CesiumTerrainProvider API调用该服务。
Google Earth Enterprise Server:通过Google Earth的高程地图方式生成地形,Cesium中使用GoogleEarthEnterpriseTerrainProvider API调用该服务。
Ellipsoid:光滑椭球体,这是Cesium默认的全球地形,地形高度为0,没有任何起伏效果。Cesium使用EllipsoidTerrainProvider API调用该服务。
这里以CesiumTerrainProvider为例进行演示:
首先到Cesium Ion,也就是生成令牌Token的页面,打开Asset Depot
选择之后点击右侧的,添加到My Assets中。添加之后可以看到已经有这 个数据,记住左侧的ID为1,后面需要用到。
完整代码如下:
const viewer = new Cesium.Viewer("cesiumContainer", {
terrainProvider: new Cesium.CesiumTerrainProvider({
url: Cesium.IonResource.fromAssetId(1),
requestWaterMask: true, // 添加水面波浪效果
requestVertexNormals: true // 添加地形光照
}),
});
其中的“1”就是上一步获取的ID=1,浏览器打开查看效果,可以看到有很明显的光照效果: