cesium学习记录07-实体(Entity)

news2024/10/6 12:30:02

在学习记录05中,我们将了如何在 Cesium 中加载各种数据,包括矢量数据、影像图层、地形和 3D 模型。这些数据为我们构建了一个基础的场景和背景。特别是在加载 3D 模型时,我们采用了 viewer.scene.primitives.add 方法将模型作为一个原始对象添加到了场景中。这与加载矢量数据和影像图层的方式有所不同,因为它直接与底层的渲染机制打交道。
在 Cesium 中,除了直接使用 Primitive 类来创建和渲染对象,还有一种更抽象和用户友好的方式来表示场景中的对象,那就是 Entity。而 Entity 与 Primitive 的关系可以这样理解:Entity 提供了一个更高级和更方便的接口来描述和管理场景中的对象,而在内部,Cesium 会根据需要自动创建和管理相应的 Primitive 对象以实现实体的渲染。这意味着,当你使用 Entity API 时,你不必深入了解所有的底层细节,但仍然可以获得高效和优雅的渲染结果。(Primitive之后再讲)

什么是 Entity

Entity对象可以表示各种地理实体,如点、线、面等,并具有位置、方向、模型、标牌等属性,通过设置这些属性可以实现各种类型的地理可视化,并且你能够为这些对象添加多种视觉表示,并且可以随时间更改这些表示。

Entity的创建、获取、删除与修改

创建一个实体:
var Position = Cesium.Cartesian3.fromDegrees(117.102442, 36.185321, 200);
    var descriptionContent ="点描述信息"
    // 添加一个新的点实体到viewer中
    var point = viewer.entities.add({
        //实体的id
        id:"测试点001",
        //实体位置
        position: Position,
        //实体形状及样式
        point: {
          pixelSize: 15,                // 像素大小
          color: Cesium.Color.RED.withAlpha(0.8), // 添加透明度
          outlineColor: Cesium.Color.WHITE, // 白色外框
          outlineWidth: 2, // 外框宽度
        },
        //实体描述(即InfoBox中信息)
        description: descriptionContent,
        //实体标签
        label: {
            text: '这是一个点',         // 设置标签内容
            showBackground: true,      // 设置标签背景可见
            scale: 0.6,                // 设置标签的缩放
            horizontalOrigin: Cesium.HorizontalOrigin.LEFT,  // 设置水平起点为左侧
            verticalOrigin: Cesium.VerticalOrigin.CENTER,    // 设置垂直起点为中心,使得标签与点平行
            pixelOffset: new Cesium.Cartesian2(0, 30),       // 将标签稍微移动到点的右侧
            heightReference: Cesium.HeightReference.RELATIVE_TO_GROUND,     // 设置标签的高度参照
            position: Position      // 设置标签的位置
        }
    });

在这里插入图片描述

获取一个实体:

根据实体id获取

var entity = viewer.entities.getById("测试点001");

检查实体是否已经在viewer.entities集合中

if (viewer.entities.contains(entity)) {
    console.log("实体已存在");
} else {
    console.log("实体未创建");
}
删除实体:

删除一个实体

 var entityToRemove = viewer.entities.getById("测试点001");
    if (entityToRemove) {
        viewer.entities.remove(entityToRemove);
    }

删除所有实体

viewer.entities.removeAll();
修改实体属性
var entity = viewer.entities.getById("测试点001");
    if (entity) {
      entity.point.color=Cesium.Color.GREEN.withAlpha(0.8)
    } 
创建线
// 定义线段的两个端点
var start = Cesium.Cartesian3.fromDegrees(117.0, 36.0);
var end = Cesium.Cartesian3.fromDegrees(118.0, 37.0);
var line = viewer.entities.add({
    polyline: {
        positions: [start, end],
        width: 5,  // 线宽
        material: Cesium.Color.RED  // 线的颜色
    }
});
创建面
  var polygon = viewer.entities.add({
      name: 'Polygon',
      polygon: {
          hierarchy: Cesium.Cartesian3.fromDegreesArray([
              117.0, 36.0,
              118.0, 36.0,
              118.0, 37.0,
              117.0, 37.0
          ]),
          material: Cesium.Color.RED.withAlpha(0.5),  // 半透明的红色
          outline: true,
          outlineColor: Cesium.Color.BLACK
      }
  });
创建圆
 var circle = viewer.entities.add({
      position: Cesium.Cartesian3.fromDegrees(117.0, 36.0),
      ellipse: {
          semiMinorAxis: 300000.0,  // 300km 的半小轴
          semiMajorAxis: 300000.0,  // 300km 的半大轴(在这里,因为它是一个圆,所以半大轴和半小轴相同)
          material: Cesium.Color.BLUE.withAlpha(0.5)  // 半透明的蓝色
      }
  });

其他的一些形状和样式的使用这里就不再赘述了,以后整理到了再说。或者在我的在线demo上看一下,然后自己在我的SVN代码里翻找一下

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/866061.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

凯迪正大—微机继电保护校验仪

一、继电保护测试仪产品概述 KDJB-802继电保护测试仪是在参照电力部颁发的《微机型继电保护试验装置技术条件(讨论稿)》的基础上,听取用户意见,总结目前国内同类产品优缺点,充分使用现代的微电子技术和器件实现的一种新…

msvcp120.dll丢失的解决方法,Win11系统报错处理方法

在使用Windows11系统的时候,出现报错msvcp120.dll丢失我们需要怎么去修复它呢?msvcp120.dll是Windows操作系统中的一个重要的动态链接库文件,它包含了许多用于C程序的函数和类。然而,有时候我们可能会遇到msvcp120.dll丢失或损坏的…

AMD高保真超分算法1.0解密

FSR 1.0是空间滤波算法,分成EASU和RCAS两部分。EASU是边缘适配的空间上采样(Edge Adaptive Spatial Upsampling),RCAS是健壮对比度适配锐化(Robust Contrast Adaptive Sharpening),从CAS发展而来。 Lanczos 采样及多项式拟合 FSR 1.0 使用了 …

​ATF(TF-A)安全通告 TFV-7 (CVE-2018-3639)​

ATF(TF-A)安全通告汇总 目录 一、ATF(TF-A)安全通告 TFV-7 (CVE-2018-3639) 二、静态缓解(Static mitigation) 三、动态缓解(Dynamic mitigation) 一、ATF(TF-A)安全通告 TFV-7 (CVE-2018-3639) Title TF-A披露基于cache前瞻…

pc端网页用vue并且实现响应式 vue+bootstrap-vue

1、hbuiler内新建vue项目 在项目文件夹下用npm加载依赖(或者用hbuilder内打开命令) 2、配置路由 src内新建router文件夹,router内新建index.js index.js内配置重定向到首页 main.js内配置路由 import router from /router/index.js new…

08-1_Qt 5.9 C++开发指南_QPainter绘图

文章目录 前言1. QPainter 绘图系统1.1 QPainter 与QPaintDevice1.2 paintEvent事件和绘图区1.3 QPainter 绘图的主要属性 2. QPen的主要功能3. QBrush的主要功能4. 渐变填充5. QPainter 绘制基本图形元件5.1 基本图像元件5.2 QpainterPath的使用 前言 本章所介绍内容基本在《…

python编辑器安装与配置,python用哪个编辑器好用

大家好,给大家分享一下python编辑器pycharm安装教程,很多人还不知道这一点。下面详细解释一下。现在让我们来看看! 哪些python的编程软件值得推荐? 编写python源代码的软件.首推的Pycharm。 PyCharm用于bai一般IDE具备的功能&…

Kotlin Executors线程池newSingleThreadExecutor单线程

Kotlin Executors线程池newSingleThreadExecutor单线程 import java.util.concurrent.Executorsfun main() {val mExecutorService Executors.newSingleThreadExecutor()for (i in 1..5) {mExecutorService.execute {println("seq-$i tid:${Thread.currentThread().threa…

CSS3 中新增了哪些常见的特性?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 圆角(Border Radius)⭐ 渐变(Gradients)⭐ 阴影(Box Shadow)⭐ 文本阴影(Text Shadow)⭐ 透明度(Opacity)⭐ 过渡&…

在跨境电子商务客户支持中使用AI的几种方法

OpenAI,ChatGPT等,AI正在快速发展。今天的人工智能比以往任何时候都更智能、更细致、更准确。高性能的客户支持团队为任何电子商务业务提供了许多好处。这些优势包括更高的销售额、更好的保留率、更高的忠诚度和信任度、更高的认知度和品牌知名度、更好的…

【网络】传输层——UDP | TCP(协议格式确认应答超时重传连接管理)

🐱作者:一只大喵咪1201 🐱专栏:《网络》 🔥格言:你只管努力,剩下的交给时间! 现在是传输层,在应用层中的报文(报头 有效载荷)就不能被叫做报文了,而是叫做数…

通过OpenTelemetry上报Python-flask应用数据(阿里云)

参考文档 https://help.aliyun.com/document_detail/611711.html?spma2c4g.90499.0.0.34a056ddTu2WWq 先按照 方法一:手动埋点上报Python应用数据 步骤测试上报是否正常。 flas 上报 在 手动埋点上报Python应用数据 的基础上,上报flask应用的数据&#…

Jmeter快捷方式和应用图标设置

很多人在安装Jmeter,安装到本机却没有icon,每次使用的时候,每次打开应用都要找目录,不太方便。 【解决问题】 使用bin路径下的一个.bat文件,创建快捷方式。 【操作步骤】 Step1、将Jmeter 安装bin路径下的jmeter.bat 发送快捷方…

【论文阅读】基于深度学习的时序预测——Crossformer

系列文章链接 论文一:2020 Informer:长时序数据预测 论文二:2021 Autoformer:长序列数据预测 论文三:2022 FEDformer:长序列数据预测 论文四:2022 Non-Stationary Transformers:非平…

【后端面经-数据库】Redis详解——Redis基本概念和特点

【后端面经-数据库】Redis详解——Redis基本概念和特点 1. Redis基本概念2. Redis特点2.1 优点2.2 缺点 3. Redis的应用场景面试模拟参考资料 声明:Redis的相关知识是面试的一大热门知识点,同时也是一个庞大的体系,所涉及的知识点非常多&…

日常BUG——Java使用Bigdecimal类型报错

😜作 者:是江迪呀✒️本文关键词:日常BUG、BUG、问题分析☀️每日 一言 :存在错误说明你在进步! 一、问题描述 直接上代码: Test public void test22() throws ParseException {System.out.p…

Golang通过alibabaCanal订阅MySQLbinlog

最近在做redis和MySQL的缓存一致性,一个方式是订阅MySQL的BinLog文件,我们使用阿里巴巴的Canal的中间件来做。 Canal是服务端和客户端两部分构成,我们需要先启动Canal的服务端,然后在Go程序里面连接Canal服务端,即可监…

初始C语言——详细讲解操作符以及操作符的易错点

系列文章目录 第一章 “C“浒传——初识C语言(更适合初学者体质哦!) 第二章 详细认识分支语句和循环语句以及他们的易错点 第三章 初阶C语言——特别详细地介绍函数 第四章 初始C语言——详细地讲解数组的内容以及易错点 第五章 初始C语言—…

Docker 安装和架构说明

Docker 并非是一个通用的容器工具,它依赖于已存在并运行的Linux内核环境。 Docker实质上是在已经运行的Liunx下制造了一个隔离的文件环境,因此他的执行效率几乎等同于所部署的linux主机。因此Docker必须部署在Linux内核系统上。如果其他系统想部署Docke…

CAD练习——绘制电风扇

注意要在三维空间内完成绘制 先绘制扇叶 两条射线确定角度 绘制圆弧(圆修剪) 绘制扇叶形状(3点圆弧) 圆角: 将这几段圆弧合成同一条多段线 换个立体视图 拉伸出厚度 绘制一个球 取二者交集(带弧面的扇叶&a…