cesium模型加载-点击-高亮

cesium模型加载-点击-高亮

  1. 模型加载, Cesium3DTileset文档地址

var tileset = scene.primitives.add(new Cesium.Cesium3DTileset({
     url : 'http://localhost:8002/tilesets/Seattle/tileset.json'
}));

  1. 设置tileset的样式, Cesium3DTileStyle文档地址

tileset.style = new Cesium.Cesium3DTileStyle({
   color : {
       conditions : [
           ['${Height} >= 100', 'color("purple", 0.5)'],
           ['${Height} >= 50', 'color("red")'],
           ['true', 'color("blue")']
       ]
   },
   show : '${Height} > 0',
   meta : {
       description : '"Building id ${id} has height ${Height}."'
   }
});

  1. 业务需要点击相关数据对于模型id高亮
      // 点击数据获取id
      const filterLayer = (id) =>{
          let that = this
      
          let ids = [1,2,3];
          // 使用show regexp - 效率稍好
          const exp = ['${names} !== undefined && ', 'regExp("', ids.join('|'), '")', '.test(${names})'].join(
              '',
          )
          const falseExp = [
              '${names} === undefined || ',
              '!regExp("',
              ids.join('|'),
              '")',
              '.test(${names})',
          ].join('')
          const selExp = [
              '${names} !== undefined && ',
              '${names} === ',
              '"' + id + '"',
          ].join('')
          
          tileset.style = new Cesium.Cesium3DTileStyle({
              color: {
                  conditions: [
                      [selExp, 'rgba(0,0,0,0)'],
                      [falseExp, 'rgba(255,255,255,0)'],
                  ],
              },
              // show: exp,
          })
            // 如上 falseExp 代表需要隐藏的模型,设置color为透明也会隐藏掉模型, 设置 show: exp 也可以显示和隐藏模型,但是如果设置show为false的同时设置color的颜色会导致模型显示。设置selExp为rgba(0,0,0,0)表示高亮为红色。
            
      }

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值