cesium1.92版本更新后cesium.when被弃用问题

在进行贴地测量时显示,代码报错显示cesium.when不是一个function

  Cesium.when(Cesium.sampleTerrainMostDetailed(this.viewer.terrainProvider, [newCtg1, newCtg2]), function (updateLnglats) {

            for (var i = 0; i < updateLnglats.length; i++) {

                var item = updateLnglats[i];

                item.height = item.height ? item.height : height;

            }

cesium在1.92版本之后弃用了cesium.when,我们将上面的代码段中使用的 Cesium.when 替换为标准的 Promise 处理方式,更改后的代码为

   Cesium.sampleTerrainMostDetailed(this.viewer.terrainProvider, [newCtg1, newCtg2]).then(function (updateLnglats) {

            for (var i = 0; i < updateLnglats.length; i++) {

                var item = updateLnglats[i];

                item.height = item.height ? item.height : height;

            }

好的,以下是一个cesium的代码示例,实现初始化加载地形服务完成后进行某个多边形区域内的地形服务拉高2000米,并在拉高后的地形上加载线数据: ```javascript // 初始化cesium var viewer = new Cesium.Viewer('cesiumContainer'); // 加载地形服务 viewer.terrainProvider = new Cesium.CesiumTerrainProvider({ url: 'https://assets.agi.com/stk-terrain/v1/tilesets/world/tiles' }); // 定义多边形区域 var polygon = Cesium.Cartesian3.fromDegreesArray([ -72.0, 40.0, -70.0, 35.0, -75.0, 30.0, -80.0, 25.0, -75.0, 20.0, -70.0, 15.0, -72.0, 10.0 ]); // 拉高多边形区域内的地形 var promise = Cesium.sampleTerrainMostDetailed(viewer.terrainProvider, polygon); Cesium.when(promise, function(updatedPositions) { // 拉高地形服务 for (var i = 0; i < updatedPositions.length; i++) { updatedPositions[i].height += 2000; } // 加载线数据 var positions = [ updatedPositions[0], updatedPositions[1], updatedPositions[2], updatedPositions[3], updatedPositions[4], updatedPositions[5], updatedPositions[6] ]; var line = viewer.entities.add({ polyline : { positions : positions, width : 5, material : Cesium.Color.RED } }); }); ``` 在这个示例代码中,我们首先初始化了一个cesium视图器,并加载了地形服务。接着,我们定义了一个多边形区域,然后使用Cesium的`sampleTerrainMostDetailed`函数拉高多边形区域内的地形。拉高地形的过程是异步的,因此我们使用了`Cesium.when`函数来等待地形拉高完成。接着,我们使用一个循环遍历地形上的所有点,并将每个点的高度值增加2000米。最后,我们使用Cesium的`entities.add`函数添加了一条红色的线段,这条线段的顶点坐标是经过拉高后的多边形区域的顶点坐标。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值