写一段代码,依赖于cesium1.68版本,需求是:我有一个包含坐标的数组,let arr = [[108.1116060808054, 26.29285005303178], [108.09036949810931, 26.330784362355526], [108.0873586775086, 26.330215533166974], [108.10850196641472, 26.291968266451097],[108.1116060808054, 26.29285005303178]],我想以这些坐标实现一个地形挖平的效果
时间: 2023-08-18 18:55:03 浏览: 84
Cesium源码1.68
以下是使用Cesium 1.68版本实现地形挖平效果的示例代码:
```javascript
// 创建地图场景
var viewer = new Cesium.Viewer('cesiumContainer', {
terrainProvider: Cesium.createWorldTerrain()
});
// 创建地形挖平区域
var arr = [
[108.1116060808054, 26.29285005303178],
[108.09036949810931, 26.330784362355526],
[108.0873586775086, 26.330215533166974],
[108.10850196641472, 26.291968266451097],
[108.1116060808054, 26.29285005303178]
];
var positions = [];
for (var i = 0; i < arr.length; i++) {
var lon = arr[i][0];
var lat = arr[i][1];
var position = Cesium.Cartesian3.fromDegrees(lon, lat);
positions.push(position);
}
// 创建多边形几何体
var polygon = viewer.entities.add({
polygon: {
hierarchy: new Cesium.PolygonHierarchy(positions),
height: 0,
extrudedHeight: 1000, // 挖平后的高度
material: Cesium.Color.RED.withAlpha(0.5)
}
});
// 设置挖平效果
viewer.scene.globe.depthTestAgainstTerrain = true;
```
请将代码中的`cesiumContainer`替换为你HTML页面中用于显示Cesium地图的容器的ID。
这段代码使用Cesium的`Cartesian3.fromDegrees`方法将经纬度坐标转换为Cesium的笛卡尔坐标系坐标。然后,通过创建多边形几何体,并设置高度与挖平后的高度,最终实现地形挖平的效果。
阅读全文