TerrainProvider
Cesium提供了TerrainProvider基类,该Provider负责每一个Tile对应的地形数据的构建,定义了一套地形Provider需要实现的接口和规范,但本身并不会参与其中的操作。基于此类,cesium为我们封装了5个现成的继承类操作地形数据:
EllipsoidTerrainProvider
一个非常简单的 TerrainProvider ,它提供了一个全球范围内高度为0的地形,不需要额外的地形文件,就可以实时的自己来构建这个高度为 0 的 Mesh。
const ellipsoidProvider = new Cesium.EllipsoidTerrainProvider()
viewer.terrainProvider = ellipsoidProvider
ArcGISTiledElevationTerrainProvider
ArcGIS 地形
const arcGISTiledElevationTerrainProvider = Cesium.ArcGISTiledElevationTerrainProvider.fromUrl("https://elevation3d.arcgis.com/arcgis/rest/services/WorldElevation3D/Terrain3D/ImageServer", {
token: "KED1aF_I4UzXOHy3BnhwyBHU4l5oY6rO6walkmHoYqGp4XyIWUd5YZUC1ZrLAzvV40pR6gBXQayh0eFA8m6vPg.."
})
viewer.terrainProvider = ellipsoidProvider
createWorldTerrainAsync
const worldTerrainProvider = Cesium.createWorldTerrainAsync()
viewer.terrainProvider = worldTerrainProvider
CesiumTerrainProvider
CesiumTerrainProvider 以 Cesium 支持的格式 Quantized Mesh 量化网格 或 Height Map 高度贴图 访问地形数据。
关于两种数据格式 请看下面两篇文章:
const terrainProvider = Cesium.CesiumTerrainProvider.fromUrl(Cesium.IonResource.fromAssetId(1))
viewer.terrainProvider = worldTerrainProvider