文章目录
CesiumJS支持流式传输和可视化海洋,湖泊和河流的全球高分辨率地形和水效果。 查看山峰,山谷和其他地形特征,并拥抱3D地球。 使用 Cesium ion 可流式传输自己的平铺地形数据或高分辨率精选地形,例如 Cesium World Terrain。
Quick start
在 Sandcastle 中打开 Hello World 示例。 默认情况下,地球仪是 WGS84 ellipsoid。 通过将 terrainProvider 选项传递给查看器来指定其他 terrain 提供程序。 让我们使用 Cesium World Terrain:
Cesium.Ion.defaultAccessToken = 'your_access_token';
var viewer = new Cesium.Viewer('cesiumContainer', {
terrainProvider : Cesium.createWorldTerrain()
});
修改示例后,按F8键运行它。 缩放到山区,然后按住鼠标中键并拖动以倾斜到水平视图。 这是珠穆朗玛峰的样子:
随着我们拉近距离,CesiumJS会根据地球的可见部分以及它们的远近来请求更高分辨率的地形。
地形和图像分开处理,任何图像提供者均可与任何地形提供者一起使用。 有关管理图像的信息,请参见 Imagery Layers Tutorial。
Enabling Terrain Lighting and Water Effects
Cesium World Terrain 还包括地形照明数据和水效果所需的海岸线数据。 默认情况下,此数据不与地形图块一起发送。 要启用地形照明,requestVertexNormals 并启用地球上的照明。
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 中的 terrain example ,以探索一些有趣的地形和水域的选择区域。
Ready-to-stream terrain
Cesium World Terrain:高分辨率的全球地形,可同时支持地形照明和水景效果。 Cesium World Terrain 托管在 Cesium ion 中,也可以购买以供离线使用。 将其添加到您的CesiumJS应用中,以实现快速有效的地形可视化。 Cesium World Terrain 也可以在内部使用。
Terrain providers
Cesium 支持多种使用地形提供程序请求地形的方法。 大多数地形提供商使用 HTTP 上的 REST interface 来请求地形图块。 地形提供者根据请求的格式和地形数据的组织方式而有所不同。 CesiumJS支持以下地形提供程序:
- CesiumTerrainProvider: 支持为地形流优化的量化网格地形图块。 兼容 Cesium ion 服务的地形或[3D贴图管道](/ 3d-tiling-pipeline / terrain /)的输出。
- GoogleEarthEnterpriseTerrainProvider: 支持您的 Google Earth Enterprise 服务器生成的高度图地形。
- VRTheWorldTerrainProvider: 支持 VT MAK VR-TheWorld Server 请求的高度图地形图块。
- EllipsoidTerrainProvider: 程序上创建椭圆体的表面。 这缺乏地形的真实外观,但是不从服务器请求数据。
地形提供程序的构造类似于图像提供程序,通常包括地形服务器的URL和可选代理(如果服务器不支持跨域资源共享(CORS))。
Resources
在Sandcastle中查看 terrain example,并查看 all terrain providers 的参考文档。