1. 添加地形
Cesium支持流媒体和可视化全球高分辨率地形和海洋、湖泊、河流的水效果。山脉山峰、山谷和其他地形相对于2D地图更逼真的显示效果。与影像一样,在Cesium引擎将从服务器传输地形数据,只是根据当前相机位置来请求和渲染瓦片。
下面是一些地形数据和配置选项的演示:
· ArcticDEM : 高分辨率的北极地形
· PAMAP Terrain : 高分辨率的宾夕法尼亚州的地形
· Terrain display options : 一些地形的配置选项和格式。
支持的数据格式:
Quantized-mesh Cesium团队提供的开发的格式
Heightmap
Google Earth Enterprise
Cesium中添加地形数据,我们创建一个CesiumTerrainProvider,指定一个URL地址和一些配置的选项,然后讲它分配给一个viewer.terrainProvider。在这个实例中,我们可以使用 createWorldTerrain辅助功能创建一个Cesium世界地形。
// Load Cesium World Terrainviewer.terrainProvider = Cesium.createWorldTerrain({
requestWaterMask : true, // required for water effects
requestVertexNormals : true // required for terrain lighting});
RequestWaterMask和requestVertexNormals的配置选项,是告诉Cesium需要额外的获取水和照明效果。默认情况下他们设置是false。
最后,既然我们已经有了地形数据,我们需要一条线来判断地形后面的物体是否被遮挡,只有最前面的物体才能被看到。
viewer.scene.globe.depthTestAgainstTerrain = true;
我们现在有地形和流动的水,纽约是相对平坦的,所以你可以自由的探索,可以看到新的额地形。举一个明显的例子,你可以导航到更崎岖的区域,比如大峡谷或者旧金山。
有关地形的更多知识,你可以参考教程: Terrain Tutorial.