基于CesiumJS的3D地形可视化
CesiumJS 支持按需加载和显示全球高分辨率地形以及海洋、湖泊和河流的水体效果。通过该功能,可以查看山峰、峡谷等地形特征,在地球上自由探索。
3D模型在线预览提供多种低代码平台3D模型在线预览解决方案,实现了将多种3D模型格式无缝集成到低代码业务表单中。这意味着用户可以在不离开低代码平台的情况下,直接查看和操作3D模型,极大地提升了数据可视化的效果和用户交互体验。
地形是三维场景中的重要三维效果,能看到山峰的高低起伏效果,是三维场景的"骨骼"。CesiumJS 支持按需加载和显示全球高分辨率地形以及海洋、湖泊和河流的水体效果。通过该功能,可以查看山峰、峡谷等地形特征,在地球上自由探索。使用 Cesium ion ,您可以在线加载自己的地形瓦片数据或使用官方精心制作的高分辨率地形,如 Cesium World Terrain。
快速开始
打开 Sandcastle 中的 Hello World 示例。默认情况下,地球是一个 WGS84 椭球体。通过将 terrainProvider
选项传递给 Viewer
来指定不同的地形提供者。现在,让我们使用 Cesium World Terrain:
修改示例后,按 F8 运行。放大到一个山地区域,并按住 Control
键倾斜视图至水平视角,感受一下地形效果。以下是珠穆朗玛峰的样子:
随着您放大或缩小,CesiumJS 会根据地球表面的可见区域和放大层级请求来请求相应高分辨率的地形数据。
地形和影像是分开处理的,任何影像提供者都可以与任何地形提供者一起使用。
启用地形照明和水体效果
Cesium 的全球地形数据还包括用于地形照明和水体效果的海岸线数据。默认情况下,这些数据不会随地形瓦片一起传输。要启用地形照明,请设置 requestVertexNormals
参数,并开启照明功能。
这是相同视角下的珠穆朗玛峰地形图,带有基于太阳位置的地形照明效果。可以在地形图上看到光照和阴影效果,从而呈现出更加立体和真实的地形特征。
类似地,可以使用 requestWaterMask
启用水体效果:
放大到有水体的区域以查看效果。以下是旧金山湾的水体效果图:
波浪会随时间动态变化,明亮的镜面高光显示太阳和月亮的反射效果。您可以通过改变用于创建波浪的法线贴图(Globe.oceanNormalMapUrl
)来自定义水体效果。此外,改变影像提供者(ImageryProvider
)也会影响水体的外观,因为水的颜色会与底层影像混合。
随时可用的地形
Cesium World Terrain 提供高分辨率的全球地形,支持开启地形照明和水体效果。Cesium World Terrain 托管在 Cesium ion 上或可通过购买离线使用。将其添加到您的 CesiumJS 应用程序中,可以实现快速且高效的地形可视化。此外,Cesium World Terrain 还支持本地部署。
更多地形提供者
Cesium 支持通过多种地形提供者来请求地形数据。大多数地形提供者提供基于 HTTP 的 REST接口 请求地形瓦片。但不同的地形提供者在请求的格式和地形数据的组织方式上有所不同。Cesium 支持以下几种地形提供者:
CesiumTerrainProvider
:支持 量化网格 地形瓦片,优化地形流式传输。兼容由 Cesium ion 提供的地形或通过 3D 瓦片化管道输出的地形。GoogleEarthEnterpriseTerrainProvider
:支持由您的 Google Earth Enterprise 服务器生成的高度图地形瓦片。VRTheWorldTerrainProvider
:支持从 VT MAK VR-TheWorld 服务器 请求高度图地形瓦片。EllipsoidTerrainProvider
:按照程序创建椭球的表面。虽然这不具备现实的地形外观,但好处是无需从服务器请求数据。
地形提供者(TerrainProvider
)的构建方式类似于影像提供者(ImageryProvider
),通常包括地形服务器的 URL 以及一个可选的代理(以备服务器不支持跨域资源共享(CORS))。