首页 / 浏览问题 / 三维GIS / 问题详情
webgl如何加载Cesium的terrain服务?
78EXP 2022年04月12日

1个回答

您好,请问你的这个数据是什么服务商什么标准的服务?

超图发布的地形服务都是可以直接读取加载的,其它三方的能否使用具体看他数据标准能不能符合原生Cesium.CesiumTerrainProvider的需求。
该接口支持 通过STK地形服务或者SuperMap iServer REST API 。

常规地形服务添加的话,new Cesium.CesiumTerrainProvider构造地形服务提供者。

在Viewer.terrainProvider里进行添加。

接口:http://support.supermap.com.cn:8090/iserver/iClient/for3D/webgl/zh/web/apis/3dwebgl.html

demo:http://support.supermap.com.cn:8090/iserver/iClient/for3D/webgl/zh/examples/webgl/editor.html#terrainAndImagery
希望可以帮助到您。

10,513EXP 2022年04月13日
您好,这个服务是Cesium原生可以加载的,但我看Cesium是去读取layer.json,但咱们的接口是去读取服务地址的config,不知道是不是还需要做什么转换操作
Viewer.terrainProvider 给的就是 new Cesium.CesiumTerrainProvider 的,只是我们地形服务的config向 new Cesium.CesiumTerrainProvider读取接口向上兼容了格式,

而不是向下new Cesium.CesiumTerrainProvider专门只能用 SuperMap iServer REST API ,

STK地形服务 地形一样可以的。

SuperMap iClient3D for WebGL将Cesium原生的CesiumTerrainProvider进行了再次封装 , 相比Cesium原生,SuperMap iClient3D for WebGL多了两个参数isSct和isShowGlobe,其他参数都大致相同。

isSct,重要参数,如果是使用SuperMap iServer发布的TIN地形缓存,此参数必须设置为true。
isShowGlobe,是否剔除无效的区域,默认是全球显示。


与EllipsoidTerrainProvider不同之处是CesiumTerrainProvider支持水面效果,不支持法向量。

还有就是 WebGL和Cesium原生都是只能在一个场景中都仅之处一个地形图层,也就是只能进行地形的替换而不能进行两个地形的叠加显示。

Cesium原生支持的是SKT地形,超图WebGL封装就是还额外增加了 SuperMap iServer REST API 地形的能力,原生的SKT地形服务的能力还在,没有变化。

SuperMap iServer REST API 加载的demo已经提供给您了,如果需要使用SKT地形服务,和原生的接口加载方法一样的,不用变化。

好的明白了,非常感谢
...