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

Cesium入门7 - Adding Terrain - 添加地形,第1张

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

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

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

支持的地形数据格式

为了添加地形数据,我们需要创建一个 CesiumTerrainProvider ,提供一个url和一些配置想,然后将这个provider赋值给 viewer.terrainProvider

此处,我们使用 Cesium WorldTerrian 图层,该图层由Cesium ion提供,在“My Assets”中是默认提供的。我们可以用 createWorldTerrain helper函数创建一个由Cesium ion提供服务的 Cesium WorldTerrian 。

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

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

我们现在有地形数据和运动的水。纽约非常平坦,所以可以在上面的地形数据上自由的探索。举一个显而易见的例子,你可以跳转到更加崎岖的区域比如 Grand Canyon 或者 San Francisco。

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

Cesium中文网交流QQ群:807482793

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

Cesium开发中,如果想要看到真实感,地形数据(DEM)不可或缺。

首先,地形数据是什么?拿DEM数据来说,DEM数据就是数字高程模型,就是描述每个点位的高程数据而已,没有其他附加信息,更不会包含影像图,单独展示是看不出什么名堂的。DEM数据在ArcGIS中打开只能看到是灰度图。

其次,如何展示呢?地形数据需要结合影像图或者普通瓦片来展示才能看到地球表面的高低起伏状态;结合影像图展示效果最佳。

下面我将从获取DEM数据到最后成功展示到Cesium中,详细描述其中的各个步骤,希望对大家有所帮助。

7.运行页面,打开之后,定位到有地形数据的地方。

从正上方俯视,地形数据已经很明显了

按住Ctrl键,旋转地球,从地平线方向看,地形数据更明显,效果更好。

最后再重复一下,地形数据单独是没法展示出来看的,只是一堆高程数据而已。结合影像图来展示,效果最佳。

注意:最好把项目服务和高程数据服务部署在同一个服务器和端口下,避免跨域。

本文主要参考了 https://www.jianshu.com/p/62d6f03f44e3 。

cesium加载所有外部资源都需要服务器端允许跨域;解决方法在服务器端;

1.若服务端可控:添加跨域头

2.若服务器端不可控:添加代理服务器

nginx添加代理示例:

location /3dtiles{

include nginx_cors

proxy_set_header Host $host:$server_port

proxy_set_header X-Real-IP $remote_addr

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for

proxy_pass http://61.181.250.183

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11209228.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存