当前位置: 首页 > ai >正文

前端~三维地图(cesium)地图遮罩蒙层

前提遮当通过geoJson行政区划边界以外的区域,主体突出行政区划范围,效果如下,相当去在一个比较大的黑色区域内挖出一个另外一个区域
在这里插入图片描述

具体相关API

在这里插入图片描述

代码实现逻辑

tips: 网上是通过geoJson 遍历获取所有行政区划的点位,但是这里已经加载了行政区划,无需再次加载,而且通过dataSource也可以遍历所有的点位,是一样的道理。

  1. 通过阿里云地理数据获取行政区划 geoJson 行政区划边界
  2. 通过cesium GeoJsonDataSource 加载行政区划边界,并设置边界样式
  3. 通过 GeoJsonDataSource 获取已经选中的行政区划边界点位
  4. 遮罩蒙层设置

第一种实现逻辑

// 加载行政区划边界
const geoBorderDataSource = new Cesium.GeoJsonDataSource()
const datasource = await geoBorderDataSource.load(`${BaseUrl}geoData/huinan_geo.json`, {stroke: Cesium.Color.fromCssColorString('#fb7014'),fill: Cesium.Color.fromAlpha(Cesium.Color.WHITE, 0),strokeWidth: 5.0})
await this.viewer.dataSources.add(datasource)
// 通过datasource 获取点位
const polygonPoints: Cesium.Cartesian3[] = []datasource.entities.values.forEach((entity) => {if (entity.polygon) {const hierarchy = entity.polygon.hierarchy.getValue(Cesium.JulianDate.now())if (hierarchy) {const positions = hierarchy.positionspolygonPoints.push(...positions)}}})
// 蒙层遮罩
this.viewer.entities.add({polygon: {hierarchy: new PolygonHierarchy(Cesium.Cartesian3.fromDegreesArray([100, 0, 100, 89, 160, 89, 160, 0]),[new PolygonHierarchy(polygonPoints)]),// 这里是网上的写法,虽然也能实现,但是API升级之后写法有些许变化// hierarchy: {//   positions: Cesium.Cartesian3.fromDegreesArray([100, 0, 100, 89, 160, 89, 160, 0]), //外部区域//   holes: [//     {//       positions: polygonPoints//     }//   ]// },material: Cesium.Color.BLACK.withAlpha(0.2)}})
http://www.xdnf.cn/news/12462.html

相关文章:

  • 货运车辆在高速公路上发生故障,应如何设置警示标志?
  • 山洪径流过程及洪水淹没数值模拟
  • JDK21 虚拟线程原理剖析与性能深度解析
  • 力扣面试150题--克隆图
  • 2025年服装收银系统推荐:助力服装商家高效经营
  • SDC命令详解:使用set_min_capacitance命令进行约束
  • hbuildx运行uzapp项目初始化配置
  • gid1 gid2 profileOwner
  • 使用 XState 状态机打造英语单词学习界面(demo)
  • 深入Kubernetes源码阅读指南核心概念- /pkg/api
  • 使用qsort函数对字符串中的星期名称进行排序
  • 30.【新型数据架构】-区块链数据架构
  • Java并发编程实战 Day 13:Fork/Join框架与并行计算
  • 如何解决 远程 合并冲突
  • Docker容器运行一段时间后GPU无法使用报错Failed to initialize NVML: Unknown Error
  • AFNetworking `setSecurityPolicy:` 方法源码解析及最佳实践
  • 以太网原理图设计和PCB设计deepseek
  • 三十三、面向对象底层逻辑-SpringMVC九大组件之HandlerExceptionResolver接口设计
  • 张量的理解
  • Python如何去除图片干扰
  • pp-ocrv5的关键改进PPHGNetV2_B4
  • java 异步
  • 2025-适用于Windows11Version 24H2的05累积更新,适合基于x64的系统(KB5058411) 安装错误-0x800f0831
  • 第四章 信息系统管理-4.1 管理方法
  • 正式上线!在 Sui 主网上使用 Nautilus 构建防篡改预言机
  • MCP是什么
  • STM32实战:数字音频播放器开发指南
  • DFT测试之TAP/SIB/TDR
  • 29.【新型数据架构】-边缘计算数据架构
  • Linux top 命令 的使用总结