iClient3D 图元操作

1. S3MTilesLayer,S3M(Spatial 3D Model)图层类

S3MTilesLayer,S3M(Spatial 3D Model)图层类,通过该图层实现加载三维切片缓存,包括倾斜摄影模型、BIM模型、点云数据、精细模型、矢量数据、符号等。

那S3MTilesLayer中针对图元的操作主要有'颜色','偏移','可见性''等

2. 图元操作之颜色

1.临时选中高亮:即鼠标选中其他对象或者不选中时,不再高亮;

这种情况可直接设置图层的selectedColor

javascript 复制代码
layer.selectedColor = Cesium.Color.RED

若是经过查询获取的id,可以调用setSelection(id),设置该对象选中并高亮

2.设置图元颜色

javascript 复制代码
let selectedId = [15051, 15052, 17076, 17057, 17037, 17056, 17036, 15072, 14322, 17174, 16872, 16873]
    let Colors= ['#152664','#0d2680','#002eb3','#0041a2','#005ebc','#1b75cf','#0080ff', '#2baaf9','#55d7f8','#8cedff','#b1f1ff','#F0FFFF']
    // 设置图元颜色
    function setColor(){
       for (let i = 0; i < selectedId.length; i++) {
            layer.setObjsColor([selectedId[i]], Cesium.Color.fromCssColorString(Colors[i]))
        }
    }
    // 删除相应id的图元颜色
    function removeColor(){
      layer.removeObjsColor(selectedId.slice(0,5))
    }
    // 删除所有图元的颜色
    function removeAllColor(){
        layer.removeAllObjsColor()
    }

3. 图元操作之可见性

可见性的操作主要分为两种,

一.不互斥,即设置图元自身的可见性,不影响其他图元:

使用setOnlyObjsVisible(ids, isVisible)

javascript 复制代码
// 设置图元可见
    function setOnlyObjsVisible(){
      layer.setOnlyObjsVisible(selectedId,true)
    }
    // 设置图元不可见
    function setOnlyObjsDisVisible(){
        layer.setOnlyObjsVisible(selectedId,false)
    }

二.互斥,设置图元自身的可见性,会影响其他图元的可见性:

使用setObjsVisible(ids, isVisible)

javascript 复制代码
// 互斥:设置图元可见
    function setObjsVisible(){
      layer.setObjsVisible(selectedId,true)
    }
    // 互斥:设置图元不可见
    function setObjsDisVisible(){
        layer.setObjsVisible(selectedId,false)
    }

4. 图元操作之偏移

偏移和其他三种不太一样,设置的偏移参数是设置图层的selectedTranslate属性,而不是在set方法里面设定偏移参数

javascript 复制代码
layer.selectedTranslate = new Cesium.Cartesian3(5, 0, 0)
layer.setObjsOffset([selectedId2])
相关推荐
yuki_uix1 天前
当 reduce 遇到二维数据:从"聚合直觉"到"复合 Map"的思维跃迁
前端·javascript·面试
我叫黑大帅1 天前
Vue3中的computed 与 watch 的区别
前端·javascript·面试
暗不需求1 天前
# 一文搞懂 JavaScript 内存机制:从栈和堆,到闭包为什么“活得更久”
前端·javascript
CharlesY1 天前
JavaScript HTML5 Cache Manifest:离线应用缓存机制考古
前端·javascript
丰。。1 天前
3D高斯泼溅研究01
人工智能·深度学习·3d·强化学习·深度强化学习
你挚爱的强哥1 天前
欺骗加载进度条,应用于无法监听接口数据传输进度的情况
前端·javascript·html
zhensherlock1 天前
Protocol Launcher 系列:Mail Assistant 轻松发送 HTML 邮件
前端·javascript·typescript·node.js·html·github·js
恒本银河+1 天前
基于MQTT+NFC标签项目开发教程
前端·javascript·nfc标签
GISer_Jing1 天前
React 18+ 高级特性实战与面试精讲
javascript·react.js·面试
小小小米粒1 天前
生命周期 = Vue 实例从创建 → 挂载 → 更新 → 销毁的全过程钩子函数computed = 基于依赖缓存的计算属性
前端·javascript·vue.js