Cesium添加点线面(贴地)

article/2025/7/2 6:45:43
 // 创建一个图元集合const primitives = viewer.scene.primitives.add(new Cesium.PrimitiveCollection());

1、点上图

 // 定义点的位置(中国不同城市的经纬度)const points = [{ lon: 116.4074, lat: 39.9042, name: "北京" },{ lon: 121.4737, lat: 31.2304, name: "上海" },{ lon: 113.2644, lat: 23.1291, name: "广州" },{ lon: 104.0658, lat: 30.5728, name: "成都" },{ lon: 114.0579, lat: 22.5431, name: "深圳" }];// 创建点集合实例const pointCollection = new Cesium.PointPrimitiveCollection();// 为每个点创建PointPrimitive并添加到集合中points.forEach(point => {pointCollection.add({position: Cesium.Cartesian3.fromDegrees(point.lon, point.lat),pixelSize: 10,color: Cesium.Color.RED,outlineColor: Cesium.Color.WHITE,outlineWidth: 2,label: new Cesium.LabelStyle({text: point.name,font: '14px Inter, sans-serif',fillColor: Cesium.Color.WHITE,backgroundColor: Cesium.Color.BLACK.withAlpha(0.7),backgroundPadding: new Cesium.Cartesian2(5, 5),showBackground: true,verticalOrigin: Cesium.VerticalOrigin.BOTTOM,pixelOffset: new Cesium.Cartesian2(0, -15)})});});// 将点集合添加到图元集合中primitives.add(pointCollection);
  1. 线上图
// 定义一条连接中国几个城市的线(北京-上海-广州-成都-北京)
const linePositions = Cesium.Cartesian3.fromDegreesArray([116.4074, 39.9042,  // 北京121.4737, 31.2304,  // 上海113.2644, 23.1291,  // 广州104.0658, 30.5728,  // 成都116.4074, 39.9042   // 回到北京形成闭环
]);// 创建线实例
const line = new Cesium.Primitive({geometryInstances: new Cesium.GeometryInstance({geometry: new Cesium.PolylineGeometry({positions: linePositions,width: 5,vertexFormat: Cesium.PerInstanceColorAppearance.VERTEX_FORMAT}),attributes: {color: Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.BLUE)}}),appearance: new Cesium.PerInstanceColorAppearance({flat: true,renderState: {lineWidth: Math.min(5, viewer.scene.maximumAliasedLineWidth)}})
});// 将线添加到图元集合中
primitives.add(line);
  1. 面上图
// 定义一个多边形(以中国部分边界为例)
const polygonPositions = Cesium.Cartesian3.fromDegreesArray([116.4074, 39.9042,  // 北京附近121.4737, 31.2304,  // 上海附近113.2644, 23.1291,  // 广州附近104.0658, 30.5728,  // 成都附近106.5049, 29.5331,  // 重庆附近114.3055, 30.5928,  // 武汉附近116.4074, 39.9042   // 回到北京形成闭环
]);// 创建多边形实例
const polygon = new Cesium.Primitive({geometryInstances: new Cesium.GeometryInstance({geometry: new Cesium.PolygonGeometry({polygonHierarchy: new Cesium.PolygonHierarchy(polygonPositions),vertexFormat: Cesium.PerInstanceColorAppearance.VERTEX_FORMAT}),attributes: {color: Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.GREEN.withAlpha(0.5))}}),appearance: new Cesium.PerInstanceColorAppearance({translucent: true,flat: true})
});// 将多边形添加到图元集合中
primitives.add(polygon);
  1. 贴地展示方式一
    点贴地显示:为点图元设置了heightReference属性
    线贴地显示:为线图元设置了heightReference属性
    在这里插入图片描述
heightReference: clampToGround ? Cesium.HeightReference.CLAMP_TO_GROUND : Cesium.HeightReference.NONE

面贴地显示:为面图元设置了classificationType属性
在这里插入图片描述

classificationType: Cesium.ClassificationType.TERRAIN
  1. 贴地展示方式一

贴地线:

// 创建贴地线段几何实例
const positions = Cesium.Cartesian3.fromDegreesArray([116.4074, 39.9042,  // 北京121.4737, 31.2304,  // 上海113.2644, 23.1291,  // 广州104.0658, 30.5728,  // 成都116.4074, 39.9042   // 回到北京形成闭环
]);const geometry = new Cesium.GroundPolylineGeometry({positions : positions
});

贴地多边形:

const instance = new Cesium.GeometryInstance({id: "PolygonGeometry",geometry: new Cesium.PolygonGeometry({polygonHierarchy: new Cesium.PolygonHierarchy(Cesium.Cartesian3.fromDegreesArray([116.4074, 39.9042,  // 北京121.4737, 31.2304,  // 上海113.2644, 23.1291,  // 广州104.0658, 30.5728,  // 成都116.4074, 39.9042   // 回到北京形成闭环]))}),
});const primitive = new Cesium.GroundPrimitive({geometryInstances: instance,  //可以是实例数组appearance: new Cesium.MaterialAppearance({material: Cesium.Material.fromType('Color', {color: Cesium.Color.BLUE}),
})

在这里插入图片描述


http://www.hkcw.cn/article/IMBKxiyPZT.shtml

相关文章

技术文档:MD520系列变频器配套杭州干扰净GRJ9000S系列EMC电源滤波器安装指南

1. 引言 MD520系列通用变频器是汇川技术有限公司(Inovance)设计的高性能电流矢量控制交流驱动器,广泛应用于纺织、造纸、机床、包装、食品、风机和水泵等行业。为确保其在复杂电磁环境中稳定运行并不对其他设备造成干扰,手册推荐…

【基于阿里云搭建数据仓库(离线)】DataWorks中删除节点

1.右击想要删除的节点,点击删除 2. 显示如下界面,点击“去下线” 3.进入到如下界面,点击红色框出来的 4.重新右击想要删除的目标节点,点击删除 5. 点击去下线 6.点击开始下线 7.点击“确认发布” 8.点击“确认” 9.点击“重新删除…

【GESP真题解析】第 6 集 GESP 三级 2023 年 9 月编程题 1:小杨的储蓄

大家好,我是莫小特。 这篇文章给大家分享 GESP 三级 2023 年 9 月编程题第 1 题:小杨的储蓄。 题目链接 洛谷链接:B3867 小杨的储蓄 一、完成输入 根据输入格式的描述,输入有两行,第一行为两个整数 N 和 D,数据范围: 1 ≤ N ≤ 1000 1\le N \le 1000 1≤N≤1000, 1 …

MySQL-多表关系、多表查询

一. 一对多(多对一) 1. 例如;一个部门下有多个员工 在数据库表中多的一方(员工表)、添加字段,来关联一的一方(部门表)的主键 二. 外键约束 1.如将部门表的部门直接删除,然而员工表还存在其部门下的员工,出现了数据的不一致问题&am…

Arbitrum Stylus 合约实战 :Rust 实现 ERC721

在上一篇中,我们学习了如何在 stylus 使用 rust 编写 ERC20合约,并且部署到了Arbitrum Sepolia ,今天我们继续学习,如何在 stylus 中使用 rust 实现 ERC721 合约,OK, 直接开干! 关于环境准备,请…

超声波测距三大算法实测对比

前言 声波测距的数据包含很大噪声,即使障碍物(以纸板为例)静止,测量距离数据也上下跳变,需要通过数据滤波算法降低测量误差,主要滤波算法有平均值滤波和卡尔曼滤波。 在超声波测距中,无滤波、…

【2025年5月】AI生产力再探再报:各家智能体持续内卷,前沿应用不断细分

前言 2025年5月的个人学习笔记。 一、工具尝鲜快报:初探感觉好玩,但还未深入的工具。 二、生产力军火库:开箱即用的神器,以及一些好用的技巧。 三、前沿动态速递:一些可反复品读的优质资料和个人感兴趣的新工具。 文章…

ubuntu22.04安装megaton

前置 sudo apt-get install git cmake ninja-build generate-ninja安装devkitPro https://blog.csdn.net/qq_39942341/article/details/148388639?spm1001.2014.3001.5502 安装cargo https://blog.csdn.net/qq_39942341/article/details/148387783?spm1001.2014.3001.5501 …

shell脚本的条件测试

命令结果判定 && :在命令执行后如果没有任何报错时会执行符号后面的动作 || :在命令执行后如果命令有报错会执行符号后的动作 条件判断 # test 语句 # [],[[]],(()) 语句 # [[]] 可以支持的表达式更多,是最常…

已有的前端项目打包到tauri运行(windows)

1.打包前端项目产生静态html、css、js 我们接下来用vue3 vite编写一个番茄钟案例来演示。 我们执行npm run build 命令产生的dist目录下的静态文件。 2.创建tarui项目 npm create tauri-applatest一路回车,直到出现。 3.启动运行 我们将打包产生的dist目录下的…

随记 nacos + openfegin 的远程调用找不到服务

这里的配置问题就不说了,基本的都没有问题,然后现在的是怎么样的场景呢,就是有两台服务器,两台服务器分别部署了两个模块,B要调用A服务,然后通过nacos找到了这个服务的名称,但是呢发现连不上&am…

【Python 算法零基础 4.排序 ⑦ 桶排序】

草木不争高,争的是生生不息 —— 25.5.26 选择排序回顾 ① 遍历数组:从索引 0 到 n-1(n 为数组长度)。 ② 每轮确定最小值:假设当前索引 i 为最小值索引 min_index。从 i1 到 n-1 遍历,若找到更小元素&am…

天机学堂-分页查询

需求 分页查询我的课表 返回: 总条数、总页数、当前页的课表信息的集合 返回的VO(已经封装成统一的LearningLessonsVO) 定义Controller RestController RequestMapping("/lessons") RequiredArgsConstructor public class Lear…

Transformer 是未来的技术吗?

之前的文章中,聊了不少关于 Transformer 方面的内容: Transformer 中的注意力机制很优秀吗?-CSDN博客初探 Transformer-CSDN博客来聊聊Q、K、V的计算-CSDN博客 现在的大模型基本都是基于 Transformer 或者它的演进技术,那么&…

阿里云国际站,如何通过代理商邀请的链接注册账号

阿里云国际站:如何通过代理商邀请链接注册,解锁“云端超能力”与专属福利? 渴望在全球化浪潮中抢占先机?想获得阿里云国际站的海量云资源、遍布全球的加速节点与前沿AI服务,同时又能享受专属折扣、VIP级增值服务支持或…

[创业之路-404]:企业战略管理案例分析-战略执行-人才战略

一、概述 在BLM(业务领先模型)战略执行中,人才是核心模块和关键要素,其管理需紧密围绕战略目标展开,具体如下: 1. 人才战略与战略目标的对齐 关键任务分解:通过战略解码,将业务目…

C++11 : 智能指针

C11 : 智能指针 目录 C11 : 智能指针引言1. 智能指针的使用场景分析2. RALL和智能指针的设计思路3. C标准库智能指针的使用4. 智能指针的原理5. shared_ptr和weak_ptr5.1 shared_ptr循环引用问题5.2 weak_ptr 6. shared_ptr的线程安全问题7. C11和boost中…

嵌入式开发之STM32学习笔记day16

STM32F103C8T6 I2C通信协议 1 I2C简介 I2C(Inter-Integrated Circuit)是一种两线制的串行通信协议,广泛应用于微控制器与外围设备之间的数据传输,它支持多主多从的通信模式,允许多个设备连接在同一总线上,…

Redis数据类型操作命令

Redis通用命令 keys:查看符合模板的所有key 因为keys命令使用的是模糊查序,比较耗性能,由于有redis是单线程,因此在生成情况下不建议使用该命令。del:删除一个或者多个keyexists:判断一个key是否存在expi…

Leetcode 2123. 使矩阵中的 1 互不相邻的最小操作数

1.题目基本信息 1.1.题目描述 给你一个 下标从 0 开始 的矩阵 grid。每次操作,你可以把 grid 中的 一个 1 变成 0 。 如果一个矩阵中,没有 1 与其它的 1 四连通(也就是说所有 1 在上下左右四个方向上不能与其他 1 相邻)&#x…