Cesium 入门之地形数据的加载

524 阅读1分钟

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 高度贴图 访问地形数据。

关于两种数据格式 请看下面两篇文章:

cesium地形瓦片(HeightMap)格式

cesium地形瓦片(Quantized-mesh)格式

const terrainProvider = Cesium.CesiumTerrainProvider.fromUrl(Cesium.IonResource.fromAssetId(1))

viewer.terrainProvider = worldTerrainProvider

地形数据处理与发布