JAVA语言之Cesium官方教程5--地形图层
小标 2019-06-19 来源 : 阅读 1618 评论 0

摘要:本文主要向大家介绍了JAVA语言之Cesium官方教程5--地形图层,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

本文主要向大家介绍了JAVA语言之Cesium官方教程5--地形图层,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

JAVA语言之Cesium官方教程5--地形图层

Cesium支持渐进流式加载和渲染全球高精度地形,并且包含海、湖、河等水面效果。相对2D地图,山峰、山谷等其他地形特征的更适宜在这种3D地球中展示。
地形数据集是巨大的,通常都是GB或者TB级别。在普通3D引擎中,使用底层图形API去高效实现地形数据的可视化需要做很多事情。幸好,Cesium已经完成了这个体力活,而我们只需要写几行代码。
快速开始
从一个示例开始吧。打开Sandcastle中的  Hello World 示例。默认,全球是  WGS84 标准球。 添加下面代码 (在这一行之后 var viewer = ...),即可把Cesium ion上发布的全球地形数据加入到场景中:

修改后,按F8运行。先感受下地形效果,缩放到任意山区,按住中键,拖拽让水平视图倾斜。 下面是珠峰的效果:

珠峰


当我们拉近一些,Cesium依据当前相机距离以及当前可视范围来请求高精度地形数据。
地形和影像是区别对待的。默认影像是覆盖在地形上的。任意影像provider可以覆盖在任意地形provider上。
开启地形光照和水面效果
Cesium全球地形也包含了地形光照数据,以及水面效果需要的海岸线数据。默认地形服务器不会传递包含这两个额外数据的切片。我们可以在 CesiumTerrainProvider的构造函数配置一下。
开启地形光照,需要VertexNormals扩展。

这和上面的珠峰位置相同,但是现在有了基于太阳实际位置的光晕效果。

带光照的地形
水面效果也是同样的方法。我们请求WaterMask扩展。

缩放到一片水域。比如旧金山湾:

旧金山湾


有一个海浪的动画,以及反射太阳和月亮的光。


可以再去Sandcastle的 地形示例查看一些区域的地形和水面 .
可以使用的地形
Cesium 全球地形,基于Cesium开发的项目只需要几行代码就可以加载。
CesiumLab工具,非常方便的工具,可以对地形数据切片、下载地形、发布地形服务。
地形数据 providers
Cesium使用terrain providers支持几种地形数据请求方法。大部分地形provider通过基于HTTP的REST 接口 去请求地形切片。依据地形数据的组织方式和请求方式不同,Cesium支持下列地形provider:


Cesium 标准地形 -高经度全球地形,地形支持光照和水面效果。地形切片使用quantized-mesh v1.0格式。 Cesium中使用 CesiumTerrainProvider.


Google Earth Enterprise -通过高度图(height map)方式生成地形。 Cesium中使用 GoogleEarthEnterpriseTerrainProvider.


VT MAK VR-TheWorld Server - 从 VR-TheWorld Server请求地形切片。 这个服务数据是90米采样精度的全球数据,并且包含水深数据。Cesium中使用  VRTheWorldTerrainProvider.
Ellipsoid - 光滑椭球体。这个地形不请求任何服务数据,也没有任何地形起伏效果。一般用作一些太空类展示项目。 Cesium中使用 EllipsoidTerrainProvider.


可以通过实现 TerrainProvider 接口来访问其他地形服务。如果这么做了,请 贡献 给Cesium。
综上所述,使用地形provider,只需要设置 Viewer.terrainProvider。地形provider和影像provider很像,通常地形服务的url地址,以及一个代理服务器配置(当服务不支持CORS跨域访问的时候)。
一些地形provider,比如CesiumTerrainProvider包含海岸线数据能展示动态水面效果。通过修改 CentralBody.oceanNormalMapUrl属性去替换海量的法线贴图,去自定义海浪效果。因为水面颜色和影像颜色是混合的,所以修改影像也会影响水面效果 。
资源
查看Sandcastle中的 地形示例 。帮助手册 所有的地形provider.


本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言JAVA频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程