cesium动态水面(水面几何挖洞)

animatingWater() {
    let viewer = this.props.viewer;
    //河道多边形
    let position = Cesium.Cartesian3.fromDegreesArray(riverArray);
    let holes = Cesium.Cartesian3.fromDegreesArray(holesArray);
    var x = {
      positions: position,
      //由于挖的这个洞,是x本身的一种数组集合,所以每一个对象里,又是一个x的形式
      holes: [{ positions: holes }]
    };
    // // new Cesium.PolygonHierarchy(),
    var polygon1 = new Cesium.PolygonGeometry({
      polygonHierarchy: x,
      // hierarchy:x,
      // extrudedHeight:0, //与height不能同时存在,否则height不生效
      height: 19.0,
      // perPositionHeight:false,
      // outline: true,
      // outlineWidth: 100,
      // fill: false,
      // arcType: Cesium.ArcType.RHUMB,
      // material: Cesium.Color.RED,
      vertexFormat: Cesium.EllipsoidSurfaceAppearance.VERTEX_FORMAT
    });
    River1 = new Cesium.Primitive({
      geometryInstances: new Cesium.GeometryInstance({
        geometry: polygon1
      }),
      appearance: new Cesium.EllipsoidSurfaceAppearance({
        aboveGround: true
      }),
      show: true
    });
    var River1_Material = new Cesium.Material({
      fabric: {
        type: 'Water',
        uniforms: {
          // baseWaterColor:new Cesium.Color('#1E90FF'),00BFFF #40E0D0
          blendColor: new Cesium.Color("#008B45"),
          normalMap: waterNormals,
          frequency: 100.0,
          animationSpeed: 0.005,
          amplitude: 10.0,
        }
      }
    });
    River1.appearance.material = River1_Material;
    viewer.scene.primitives.add(River1);
  }
//水体坐标格式
 const riverArray = [
    118.23398069450448, 33.953187522423235, 118.23398845952485, 33.953059535040296]
 const holesArray = [
    118.23339517412681, 33.953153320913984, 118.22892645014714, 33.95289219246603]
 

转载于:https://www.cnblogs.com/marvelousone/p/11408271.html

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值