Cesium入门7 - Adding Terrain - 添加地形

Cesium入门7 - Adding Terrain - 添加地形

Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/javascript

Cesium支持流式的、可视化的全球高程投影地形地势、水形数据,包括海洋、湖泊、河流、山峰、峡谷和其余可以被三维展现出来的且效果比二维好的地形数据。像图层数据同样,Cesium引擎会从一个服务器上请求流式地形数据,仅请求那些基于当前相机能看到的须要绘制的图层上的数据。html

Cesium官方提供了一些地形数据集的例子,以及如何配置这些参数。java

支持的地形数据格式git

  • Quantized-mesh, Cesium团队本身开源的一种格式
  • Heightmap
  • Google Earth Enterprise

为了添加地形数据,咱们须要建立一个CesiumTerrainProvider,提供一个url和一些配置想,而后将这个provider赋值给viewer.terrainProvidergithub

此处,咱们使用Cesium WorldTerrian图层,该图层由Cesium ion提供,在“My Assets”中是默认提供的。咱们能够用createWorldTerrainhelper函数建立一个由Cesium ion提供服务的Cesium WorldTerrian服务器

// Load Cesium World Terrain
viewer.terrainProvider = Cesium.createWorldTerrain({
    requestWaterMask : true, // required for water effects
    requestVertexNormals : true // required for terrain lighting
});

requestWaterMaskrequestVertexNormals是可选的配置项,告诉Cesium是否须要请求额外的水、光数据。这两个选项默认是设为false的。app

最终,既然咱们有了地形数据,咱们须要更多的线条来使得地形数据背后的objects可以正确地显示,只有最前面、最上面的objects才能是可见的。ide

// Enable depth testing so things behind the terrain disappear.
viewer.scene.globe.depthTestAgainstTerrain = true;

咱们如今有地形数据和运动的水。纽约很是平坦,因此能够在上面的地形数据上自由的探索。举一个显而易见的例子,你能够跳转到更加崎岖的区域好比 Grand Canyon 或者 San Francisco。函数

关于地形数据的更多信息,请访问Terrain Tutorialui

Cesium中文网交流QQ群:807482793

Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/

相关文章
相关标签/搜索