乐于分享
好东西不私藏

Vue3+Cesium边界遮罩效果源码免费分享(第56篇)

Vue3+Cesium边界遮罩效果源码免费分享(第56篇)

欢迎关注webgis学习,一起探索Cesium高级应用,持续更新中……
在三维可视化项目中经常需要将地图上目标展示区域进行高亮呈现,来达到以下目的:通过强调核心区域的数据呈现,有效过滤掉外围无关信息的视觉干扰,避免数据过载导致的认知混乱;利用反向遮罩的对比手法,让用户的注意力自然聚焦于选定范围,提升关键区域的辨识度与可分析性; 
本篇我们将基于Cesium平台,具体实现这种地图边界遮罩的视觉效果。
实现原理:定义一个较大的区域,将该区域颜色调至暗色调。然后对目标区域进行“挖洞”处理,再设置目标区域边界颜色即可。
实现代码:
1、获取目标区域坐标。本篇文章中展示的是通过axios获取北京市json格式的边界坐标。
    const { data } = await axios.get('/testdata/bj.json')    const feature = data.features[0]    const coordinates = feature.geometry.coordinates    let maskPoints = Cartesian3.fromDegreesArray(coordinates.flat(2))
2、定义较大的区域,设置该区域暗色调,并进行开洞处理。
    const area new Entity({           polygon: {            hierarchy: {                positions: Cartesian3.fromDegreesArray([                    451045601456014510                ]),                             holes: [                    {                        positions: maskPoints,                        holes: [],                    },                ],            },            material: Color.BLACK.withAlpha(0.7),                },    });
3、设置目标区域边界颜色。
    const line new Entity({             polyline: {            positions: maskPoints,            width4            material: Color.fromCssColorString("#6dcdff"),             clampToGroundtrue        },    });
4、在场景中添加以上步骤2、步骤3的Entity。即可实现边界遮罩效果
5、本系列教程代码采用Vue3+Cesium+Typescript封装编写,后续会持续更新,基本会涵盖 Cesium 从基础配置到高阶实战的全链路技术体系,敬请期待。读者朋友如需源码的话,欢迎在公众号输入栏私信咨询作者。

欢迎关注本公众号,如需其他合作,欢迎私信。
本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » Vue3+Cesium边界遮罩效果源码免费分享(第56篇)

猜你喜欢

  • 暂无文章