Cesium 核心概念 核心接口

news2024/11/13 8:03:38

Cesimum 可以做什么

Cesium 是一个开源的3D地球可视化引擎,它可以在Web浏览器中以高性能和高质量呈现全球范围内的地球表面数据。

Cesium 可以用于以下领域:

地理信息系统:Cesium 可以呈现地球表面上的各种地理信息数据,包括卫星影像、数字高程模型、地形数据、矢量数据等。用户可以使用 Cesium 创建交互式的地图应用程序,从而更好地了解地球上的各种地理信息。

智能城市:Cesium 可以用于可视化城市规划、交通流量、气象预报、环境监测等数据。通过 Cesium,用户可以更好地了解城市的运转情况,并对城市的规划、管理等方面进行决策。

航空航天:Cesium 可以呈现卫星轨道、星座分布、航空交通等数据,用户可以使用 Cesium 创建航空航天应用程序,更好地了解地球上的各种航空航天信息。

教育和科普:Cesium 可以呈现地球上的各种自然现象、历史事件、文化遗产等信息,用户可以使用 Cesium 创建科普应用程序,更好地向公众传播知识和文化。

总之,Cesium 可以用于各种需要可视化地球表面数据的领域,为用户提供高质量、高性能的3D地球可视化服务。

Cesium 可以加载的数据

在这里插入图片描述

加载矢量以及几个数据

在这里插入图片描述
在这里插入图片描述

Cesium 可以使得数据动态的展示

Cesium 的核心接口

Cesium的核心接口是Viewer,
它是一个场景视图的容器,
用于展示3D场景和处理用户交互。通过Viewer,我们可以添加图层、模型、绘制几何图形等,并且可以对场景进行视角操作、动画效果等。除了Viewer,Cesium还有一些其他核心接口和类,如Scene、Camera、Entity、Primitive等,它们各自负责不同的功能,一起构成了Cesium的完整框架。

Cesium 加载地形数据接口

在这里插入图片描述
创建一个椭球体

Cesium Camera

setView

在这里插入图片描述

flyTo

地区缓慢的移动到需要去的位置
在这里插入图片描述

获取到任意视角下面的三个可以调整相机参数的技巧
首先在 Cesium 地球中找到自己想要去的地方以及调节好视角,
然后再 F12 调试代码中设置相机的参数,就可以到达相应的地方
在这里插入图片描述

核心接口以及接口中参数配置

在这里插入图片描述

在这里插入图片描述

接口 - Cesium Viewer

示例代码

var viewer = new Cesium.Viewer('cesiumContainer', {
    imageryProvider: new Cesium.createOpenStreetMapImageryProvider({
        url: 'https://a.tile.openstreetmap.org/'
    }),
    baseLayerPicker: false,
    animation: false,
    timeline: false,
    geocoder: false
}); 

接口中参数含义

这个代码中创建了一个 Cesium.Viewer 对象,其中的参数如下:

‘cesiumContainer’:用于存放地球对象的 HTML 元素的 ID。

imageryProvider:图像提供者对象,它定义了从哪里获取地球表面的影像。这里使用的是 Cesium.createOpenStreetMapImageryProvider 方法,创建了一个 OpenStreetMap 影像提供者对象。

baseLayerPicker:是否显示切换底图图层的工具栏。这里设置为 false,不显示该工具栏。

animation:是否显示动画工具栏。这里设置为 false,不显示该工具栏。
timeline:是否显示时间线工具栏。这里设置为 false,不显示该工具栏。
geocoder:是否显示地理编码工具栏。这里设置为 false,不显示该工具栏。

接口 - Cesium Camera

Cesium的Camera是一个用于控制场景中相机位置、朝向和视角的对象。可以使用Camera来设置场景中的视图,例如更改相机高度、方位、角度和扭曲,以及添加相机移动动画等。

示例代码

lookAt:

lookAt(target, offset)

在观察者方向上以目标点为中心设置相机位置,并将相机朝向目标。target参数为三维坐标点,表示相机朝向的目标点。offset参数为三维向量,表示相机距离目标点的距离和相机的高度。

viewer.camera.lookAt(Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883), new Cesium.Cartesian3(0, -3000, 2000));

setView:

setView(options)

设置相机的位置、方向和视角。options为一个对象,包含以下参数:

destination: 相机的目标位置(三维坐标点)。
orientation: 相机的朝向(四元数)。
endTransform: 相机移动到目标位置时的过渡方式(可选参数)。

viewer.camera.setView({
    destination: Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883, 5000),
    orientation: {
        heading: Cesium.Math.toRadians(180),
        pitch: Cesium.Math.toRadians(-35),
        roll: 0.0
    }
});

flyTo:

flyTo(options)

通过一个过渡动画将相机从当前位置移动到指定的位置和方向。options为一个对象,包含以下参数:

destination: 相机的目标位置(三维坐标点)。
orientation: 相机的朝向(四元数)。
duration: 动画持续时间(单位为秒)。
complete: 动画结束后的回调函数(可选参数)。

viewer.camera.flyTo({
    destination: Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883, 5000),
    orientation: {
        heading: Cesium.Math.toRadians(180),
        pitch: Cesium.Math.toRadians(-35),
        roll: 0.0
    },
    duration: 3,
    complete: function() {
        console.log("Camera flyTo completed!");
    }
});

setViewRectangle

setViewRectangle(rectangle, [ellipsoid], [duration])

根据指定的矩形调整相机位置和方向。该方法会使相机覆盖矩形区域并将相机的方向调整为与矩形的中心点对齐。rectangle为矩形区域对象,包含以下参数:

west: 矩形的西边界(单位为弧度)。

camara 代码示例

// 创建一个场景
var viewer = new Cesium.Viewer('cesiumContainer');

// 获取场景中的相机
var camera = viewer.camera;

// 设置相机的位置、朝向和视野范围
camera.position = new Cesium.Cartesian3.fromDegrees(-74.01881302800248, 40.69114333714821, 1000);
camera.direction = Cesium.Cartesian3.normalize(new Cesium.Cartesian3(-1.0, 0.0, -1.0), new Cesium.Cartesian3());
camera.up = Cesium.Cartesian3.normalize(new Cesium.Cartesian3(-1.0, 0.0, 1.0), new Cesium.Cartesian3());
camera.frustum.fov = Cesium.Math.PI_OVER_THREE;
camera.frustum.near = 1.0;
camera.frustum.far = 2000.0;

// 创建一个实体
var entity = viewer.entities.add({
    position: Cesium.Cartesian3.fromDegrees(-74.01881302800248, 40.69114333714821),
    model: {
        uri: 'https://assets.cesium.com/088/088.glb'
    }
});

// 相机跟随实体
viewer.trackedEntity = entity;

// 在这个示例中,首先创建了一个场景,并获取场景中的相机对象。然后通过设置相机的位置、朝向和视野范围来控制

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

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

相关文章

【Python入门】NumPy 数组裁切及数据类型

前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 裁切数组 python 中裁切的意思是将元素从一个给定的索引带到另一个给定的索引。 我们像这样传递切片而不是索引:[start:end]。 我们还可以定义步长,如下所示:[start&#x…

RabbitMQ实现消息的延迟推送或延迟发送

一、RabbitMQ是什么? 1.RabbitMQ简介 RabbitMQ是有erlang语言开发,基于AMQP(Advanced Message Queue 高级消息队列协议)协议实现的消息队列。 常见的消息队列有:RabbitMQ、Kafka 和 ActiveMQ 2.RabbitMQ的优点 Rab…

设计模式 --- 创建者模式

一、概述 创建型模式的主要关注点是“怎样创建对象?”,它的主要特点是“将对象的创建与使用分离”。 这样可以降低系统的耦合度,使用者不需要关注对象的创建细节。 创建型模式分为: 单例模式 工厂方法模式 抽象工程模式 原型…

【linux】yum “应用商店” 的基本用法

好多工具 yum软件包查看软件包安装软件卸载软件 yum 通俗的讲,这就似我们手机上的应用商店,只不过是在linux下的。 我们可以用yum来下载东西。 软件包 在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序。 但是这样…

【Linux 命令】chroot

文章目录 一、背景二、语法三、案例3.1 命令3.2 系统调用3.3 查找服务是否存在于 chrooted 监禁内 四、注意事项 chroot 用来在指定根目录运行命令(即指定 / 的位置),不可操作指定目录之外的地方。其是一种非常简单的资源隔离化操作&#xff…

idea 配置docker 进行上传镜像,部署启动容器

前言 在我们开发测试过程中,需要频繁的更新docker镜像,然而默认情况下,docker的2375端口是关闭的,下面介绍如何打开端口。 修改docker配置文件 操作步骤: 1.1、修改配置 登录docker所在服务器,修改docker…

web前端实验5

实 验 报 告 课 程 Web前端应用开发 实验项目 Jquery AJAX编程 成 绩 专业班级 班内序号 指导教师 姓 名 学 号 实验日期 实验目的及要求: (1) 理解和掌握Jquery AJAX的get方式请求 (2) 理解和掌握Jquery AJAX的pos…

释放ChatGPT潜能:4款高效插件让你的AI助手更强大

你的ChatGPT页面是什么样的?是这样的吗? 今天我要向大家推荐四款「ChatGPT免费插件」。这些插件是我们在与GPT日常交流中,使用频率最高的四个工具。 一旦安装这些插件,你的GPT将立即变身为「超级ChatGPT」。使用起来更为流畅&am…

BEV+Transformer对无人驾驶硬件体系的巨大改变

摘要: BEVTransformer彻底终结了2D直视图CNN时代,BEVTransformer对智能驾驶硬件系统有着什么样的影响?背后的受益者又是谁? 图片来源:特斯拉 BEVTransformer是目前智能驾驶领域最火热的话题,没有之一&…

【大数据平台开发】【Web框架】001Django框架简介

【大数据平台开发】【Web框架】001Django框架简介 文章目录 【大数据平台开发】【Web框架】001Django框架简介一. Django简介与安装1.1 Django安装1.2 Django简介1.3 框架功能简介 二. Django框架的最小程序2.1 新建工程2.2 修改工程2.3 运行工程2.4 django-admin与manage.py2.…

(二)EalsticSearch 辅助工具 Kibana 介绍与安装

1、什么是 kibana ? Kibana 是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。使用Kibana,可以通过各种图表进行高级数据分析及展示。 Kibana让海量数据更容易理解。它操作简单&#xff…

Python高光谱遥感数据处理与机器学习

Python高光谱遥感数据处理与机器学习 第一章、高光谱基础 高光谱遥感简介 什么是高光谱遥感? 高光谱遥感为什么重要? 高光谱遥感与其他遥感技术的区别是什么? 高光谱遥感的历史和发展 高光谱传感器与数据获取 高光谱传感器类型 如何获…

RHCE第五次作业

目录 一、判断当前磁盘剩余空间是否有20G,如果小于20G,则将报警邮件发送给管理员,每天检查一次磁盘剩余空间 1.创建脚本test1.sh 2.下载邮件服务并执行 3.测试 4.做计划 二、 判断web服务是否运行(1、查看进程的方式判断该程序…

Node内置模块 【操作系统os模块】

文章目录 🌟前言🌟os模块🌟使用🌟属性🌟方法🌟获取操作系统临时目录🌟获取操作系统主机名🌟获取操作系统CPU架构🌟识别操作系统平台🌟获取操作系统发行版本&a…

MPLS VPN 实验

目录 MPLS VPN 实验 拓扑图 实验目的 基础配置 R2 R3 R4 公网部分配置IGP(ospf) R2 R3 R4 激活MPLS R2 R3 R4 VRF创建 R2 R4 将接口画入VRF空间 R2 R4 配置接口IP地址 R2 R4 站点1基本配置 站点2基本配置 通过静态路由在CE和…

【SPSS】两独立样本的极端反应检验和两配对样本的非参数检验详细操作教程(附案例实战)

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

链式二叉树的查找,遍历(递归实现)等接口的实现

目录 前言: 一:二叉树的建立 (1)本文采用的二叉树表示方法 (2)手动建立一颗二叉树 二:二叉树的遍历 (1)二叉树的三种遍历方式 (2)分治思想 (3)前序遍历 (4)中序遍历 (5)后序遍历 三:求二叉树的节点和高度(深度) (1)求二叉树节点 ①…

python+vue 餐饮食品安全监管投诉平台

系统主要包括个人中心、用户管理、餐饮类型管理、餐饮企业管理、案例类型管理、案例展示管理、法规分类管理、法律法规管理、在线投诉管理、查处信息管理、系统管理等功能模块。 绪论 网站的开发背景,意义和系统状况等,详细讲述了系统的用处,…

基于构效关系模型的药物设计(QSAR)

基于构效关系模型的药物设计(QSAR) 定量构效关系(QSAR,Quantitative Structure-Activity Relationship)分析是指利用理论计算和统计分析工具来研究系列化合物结构(包括二维分子结构、三维分子结构和电子结…

Latex数学公式排版

文章目录 Latex使用最佳方式:读官方文档Latex中的字符数学公式排版1.引入宏包:2.公式排版基础3.数学符号(1).希腊字母(2).指数,上下标,导数(3).分式和根式(4).关系符(5).算符(6).巨算符(7).箭头 Latex使用 最佳方式:读官方文档 The not so short intro…