CesiumJS支持对与水流相关的海洋、湖泊和河流以及全球高分辨率地形进行流式处理和可视化。查看山峰、山谷和其余地形特征,并拥抱三维数字地球。使用Cesium ion流式化您本身的切片地形数据或高分辨率管理地形,如Cesium World Terrain。javascript
打开Sandcastle的Hello World示例。默认状况下,地球球体是WGS84 ellipsoid。经过将terrainProvider选项传递给Viewer,指定不一样的地形提供器。让咱们使用Cesium世界地形:html
Cesium.Ion.defaultAccessToken = 'your_access_token'; var viewer = new Cesium.Viewer('cesiumContainer', { terrainProvider : Cesium.createWorldTerrain() });
NOTE: 建立Cesium帐号
NOTE: 本教程使用Cesium ion提供的地形。建立一个账户以获取访问令牌(access token),以便在本教程中使用地形。在这里注册,上面的示例代码将自动更新为您的令牌。若是您已经有账户,请登陆。java
修改示例后,按F8运行该示例。缩放到山区,按住鼠标中键并拖动以倾斜到地平线视图。下图珠穆朗玛峰的样子:git
随着咱们的缩放愈来愈近,CesiumJS基于地球上哪些部分可见以及它们离得有多远来得到更高分辨率的地形。github
地形和图像分别处理,任何图像提供者均可以与任何地形提供者一块儿使用。请参见Imagery Layers Tutorial以管理图像。跨域
Cesium世界地形还包括地形照明数据和水体效果所需的海岸线数据。默认状况下,此数据不会随地形图块一块儿发送。若要启用地形照明,请将requestVertexNormals设为true并开启全球光照。服务器
var viewer = new Cesium.Viewer('cesiumContainer', { terrainProvider : Cesium.createWorldTerrain({ requestVertexNormals: true }) }); viewer.scene.globe.enableLighting = true;
下图是基于太阳位置开启地形照明的珠穆朗玛峰的同一个视图。cors
使用requestWaterMask以相似的方式启用水体效果:ide
var viewer = new Cesium.Viewer('cesiumContainer', { terrainProvider : Cesium.createWorldTerrain({ requestWaterMask: true }) });
缩放到有水的区域以查看效果。这里是旧金山湾:优化
随着时间的推移,水波波动和明亮的镜面反射太阳和月亮的光。经过使用 Globe.oceanNormalMapUrl用于建立波浪来自定义水效果。更改图像提供者也会影响水的外观,由于水的颜色与底层图像混合。改变图层提供器也会改变水体效果的呈现,由于水体的颜色会和底下的图层混合渲染。
请参阅Sandcastle的地形示例,探索一些有趣的地形和水体效果区域。
Cesium World Terrain: 高分辨世界地形,同时扩展支持地形照明和水体效果。Cesium Worl Terrain支持经过Cesium ion在线访问,也支持付费下载,离线访问。将它加入到Cesium应用中,将快速提升地形可视化效果。 Cesium World Terrain也能够经过on-premise得到。
Cesium基于地形提供器支持请求地形的若干种方法。大多数地形提供器使用HTTP上的REST接口来请求地形切片。地形提供器根据请求的格式和地形数据的组织方式而有所不一样。CesiumJS支持如下地形提供器:
地形提供器的构造与图层提供器相似,若是服务器不支持跨域资源共享CORS,则一般包括地形服务器的URL和可选的代理。
查看Sandcastle中的地形示例和全部地形提供器的参考文档。
Cesium中文网交流QQ群:807482793
本文由 admin 创做,采用 知识共享署名 3.0 中国大陆许可协议 进行许可。 可自由转载、引用,但需署名做者且注明文章出处。