【Cesium入门教程】第四课:删除实体详细讲解

删除entity

申明变量

let view, point1, point2, point3, blueList = [ ]

添加三个实体点

point1 = viewer.entities.add({
  id: 'id1',
  position: Cesium.Cartesian3.fromDegrees(121, 30),
  point: {
    color: Cesium.Color.BLUE,
    pixelSize: 20
  }
})
bluelist.push(point1)
point2 = viewer.entities.add({
  id: 'id2',
  position: Cesium.Cartesian3.fromDegrees(121.0001, 30),
  point: {
    color: Cesium.Color.BLUE,
    pixelSize: 20
  }
})
bluelist.push(point2)
point3 = viewer.entities.add({
  id: 'id3',
  position: Cesium.Cartesian3.fromDegrees(121.0002, 30),
  point: {
    color: Cesium.Color.GREEN,
    pixelSize: 20
  }
})
//const entity = viewer.entities.getById('point1') //通过id查实体
viewer.zoomTo(point1)

删除:

const toDel = () => {
  // 删除方式1  remove
  // viewer.entities.remove(point1)

  // 方式二 先查再删
  // const entity = viewer.entities.getById('id1')
  // viewer.entities.remove(entity)

  // 方式三 全删
  // viewer.entities.removeAll()
  // console.log(viewer.entities)
  // console.log(point2) //实体变量还存在,只是不在viewer.entities.values中

  // 数组当图层用删除
  bluelist.forEach(item => {
    viewer.entities.remove(item)
  })
  bluelist = []
}

Call back property

用call back property 生成动态实体

let lon, lat, num = 0
const line = viewer.entities.add({
  polyline: {
    positions: new Cesium.CallbackProperty(() => {
      num += 0.002
      lon = 120 + num
      lat = 30 + num
      if (lon < 121) {
        return Cesium.Cartesian3.fromDegreesArray([120, 30, lon, lat])
      } else {
        line.polyline.positions = new Cesium.Cartesian3.fromDegreesArray([
          120, 30, 121, 31,
        ]);
      }
    }, false),
    material: Cesium.Color.YELLOW,
    width: 5
  }
})
let position = Cesium.Cartesian3.fromDegrees(120, 30, 1000000)
viewer.camera.setView({
  destination: position
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值