共计 1452 个字符,预计需要花费 4 分钟才能阅读完成。
专题图层设置透明度步骤
首先. 勾销各个图层的单选机制,能够任意多选
rightData: [{
title: '2021 版',
key: 1,
level: 0,
children: [
{
title: '专题图层',
key: "21",
disabled: true,
level: 1,
children: [{
title: '舞动',
key: '2_WD',
level: 2,
value: 'WD',
multiSelect: true,
},
{
title: '污区',
key: "251",
disabled: true,
level: 2,
children: [{
title: '污区',
key: '2_WQ',
level: 2,
value: 'WQ',
multiSelect: true,
},
{
title: '人口密度',
key: '2_RKMD',
value: 'RKMD',
level: 2,
multiSelect: true,
},
]
},
{
title: '山火',
key: "201",
disabled: true,
level: 2,
children: [{
title: '山火',
key: '2_SH',
level: 3,
value: 'SH',
multiSelect: true,
},
{
title: '植被信息',
key: '2_ZB',
value: 'ZB',
level: 3,
multiSelect: true,
}
]
},
]
}
]
}],
给每一个须要多选的树数据加上 multiSelect: true
这个属性,这样就能够多选了,详情请移步 antdesignVue 官网
1. 获取以后用户勾选的图层是哪个
2. 判断是专题图层还是根底图层
3. 如果是专题图层
4. 显示透明度拖拽条
以上是我本人干活时候写的伪代码,因为本人我的项目地图中不止有专题图层,还有别的不须要管制透明度的图层。贴在这里的目标也是心愿大家干活前先理顺思路,这样效率就会很快
5. 将拖拽条值绑定到以后用户勾选的专题图层的透明度
5.1. 获取用户拖拽滑动条的实时的值
置信实时获取滑动条绑定的值不是什么难事,这里就间接贴代码了
<a-slider id="test" :tip-formatter="formatter" :default-value="100" :max="100" :min="0" @change="sliderChange" />
sliderChange(val) {
let opcity = val / 100
console.log('滑块变了 ------------ 值是:', opcity)
},
在翻阅大量文档的根底上(百度了一下),得悉了专题图有一个办法setOpacity()
,属性传你想要批改的不透明度的值即可,也就是下面获取到的opcity
重难点在这一步
5.2 找到想要批改透明度的图层并去调用这个办法
找图层费了点劲,这个的话各个我的项目的状况可能都有所不同
还是贴代码吧
- 发现 map 组件中有个专题图对象, 打印进去看看
- 打印后果如下
- 首先咱们确定了找到专题图的办法,这个 ZB 就是数据外面定义好的能够间接拿到,那么顺着这个对象点进去就能够拿到特定的 layer 了
- 上面咱们持续点进去看看
- 通过查找原型的形式,终于发现了这个办法,那么们就能够放心大胆地调用了
sliderChange(val) {
let opcity = val / 100
let currentZzt = this.$refs.olMap.zttLayer[this.zztTypeFortransparence].layer
currentZzt.setOpacity(opcity)
},
- 最终成果如下
打完出工,又是秃头的一天
正文完
发表至: javascript
2022-01-29