9、加载cesium世界地形

news2024/11/27 4:40:41

        本节演示使用CCsium库加载cesium的世界地形,使用第四节单击事件的例子,修改点击事件添加地形。

1、ceisum显示地形需要引入CesiumTerrainProvider和CreateWorldTerrain类。与ceisum类似,修改鼠标点击事件,创建地形并添加到ceisum中。

if (aggregator->terrain == NULL) {
    aggregator->terrain = Cesium::CreateWorldTerrain::createWorldTerrain();
    aggregator->viewer->terrainProvider(aggregator->terrain);
}

支持地形下载

2、点击运行,左键单击即可看到地形

完整代码

/**
 * Created by IBM on 2021/3/3.
 */
#include <iostream>
#include <Widgets/Viewer/Viewer.h>
#include <Core/CesiumTerrainProvider.h>
#include <Core/CreateWorldTerrain.h>



class Handler {
public:
    Cesium::Viewer *viewer;
    Cesium::CesiumTerrainProvider *terrain = NULL;

    /**
     * 鼠标抬起事件
     * @param type
     * @param position
     */
    static void mouseUp(void *handler, Cesium::ScreenEvent *event) {
        Handler *aggregator = (Handler *) handler;

        if (aggregator->terrain == NULL) {
            aggregator->terrain = Cesium::CreateWorldTerrain::createWorldTerrain();
            aggregator->viewer->terrainProvider(aggregator->terrain);
        }
    }
};

int main(int argc, char *argv[]) {
    Handler *handler = new Handler();
    Cesium::Viewer viewer = Cesium::Viewer(500, 300);
    handler->viewer = &viewer;
    std::string url = "https://dev.virtualearth.net";
    std::string key = "AmXdbd8UeUJtaRSn7yVwyXgQlBBUqliLbHpgn2c76DfuHwAXfRrgS5qwfHU6Rhm8";
    Cesium::BingMapsImageryProvider *imageryProvider1 = new Cesium::BingMapsImageryProvider(url, key);
    viewer.imageryLayers()->addImageryProvider(imageryProvider1);
    //创建事件
    Cesium::ScreenSpaceEventHandler *_eventHandler = new Cesium::ScreenSpaceEventHandler(handler);
    _eventHandler->setInputAction(&Handler::mouseUp, Cesium::ScreenSpaceEventType::LEFT_CLICK);//设置鼠标点击事件
    viewer.startAnimating(true);//启动opengl循环
    system("pause");
    return 0;
}

返回目录

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

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

相关文章

Apache Doris (二十八):Doris 数据导入(六)Spark Load 1- 原理及配置

目录 1. 基本原理 2. Spark集群搭建 2.1 Spark Standalone 集群搭建 2.2 Spark On Yarn 配置 3. Doris配置Spark与Yarn 3.1 Doris配置Spark 3.2 Doris配置Yarn 进入正文之前&#xff0c;欢迎订阅专题、对博文点赞、评论、收藏&#xff0c;关注IT贫道&#xff0c;获取高质…

leetcode:定长字串中元音的最大数目

定长字串中元音的最大数目 medium 给你字符串 s 和整数 k 。 请返回字符串 s 中长度为 k 的单个子字符串中可能包含的最大元音字母数。 英文中的 元音字母 为&#xff08;a, e, i, o, u&#xff09;。 示例 1&#xff1a; 输入&#xff1a;s "abciiidef", k 3 输出…

KBLAutoSwitch偶尔无法自动切换输入法的问题

KBLAutoSwitch&#xff08;https://github.com/flyinclouds/KBLAutoSwitch&#xff09;是一款中英文输入法自动切换软件&#xff0c;但是在使用过程中偶尔会出现无法自动切换成自己想要的输入法的问题&#xff0c;比如我将cmd窗口设为自动切换英文输入法&#xff0c;但是在使用…

计算机组成原理 期末复习

在我的博客查看&#xff1a;https://chenhaotian.top/study/computer-composition-principles-final-review/ 如果遇到 外链图片转存失败 &#xff0c;直接打开链接查看图片 计算机组成原理 期末复习 第 1 章 计算机系统概论 1.1 计算机的诞生和发展 冯诺依曼体系 1.2 计算…

LLaMA以及其扩展模型总结(一)

自从ChatGPT发布以来&#xff0c;人们看到了AGI时代的曙光&#xff0c;但是由于ChatGPT是闭源的&#xff0c;只能在官网体验和使用API进行访问&#xff0c;据OpenAI CEO说是出于AGI的安全性考虑&#xff0c;这样大大限制了很多研究人员和机构对于AGI的研究进展。Meta公司反其道…

在线转换视频格式到mp4怎么换?分享两个方法!

在日常生活和工作中&#xff0c;我们常常需要将视频文件转换为MP4格式以便于在各种设备上播放和共享。本文将介绍两种快速转换视频格式为MP4的方法&#xff0c;一种是使用记灵在线工具&#xff0c;另一种是使用一个在线转换工具。 方法一&#xff1a;记灵在线工具 记灵是一款…

LED驱动(原始架构)——STM32MP157

文章目录 硬件知识 LED 原理GPIO 引脚操作方法GPIO 模块一般结构GPIO 寄存器的一般操作 STM32MP157的GPIO操作方法先使能PLL4MPU、MCU共享GPIO模块1. 在MPU上使能某个GPIO模块2. 在MCU上使能某个GPIO模块 GPIO模块设置引脚工作模式&#xff1a;GPIO模式对于输出引脚&#xff1a…

模块化+命名空间

1.目的&#xff1a;为了让代码更好维护&#xff0c;让多种数据分类更加明确 2.修改src/store/index.js为了解决不同模块命名冲突的问题&#xff0c;将不同模块的namespaced:true&#xff0c;之后在不同页面中引入getter actions mutations state&#xff0c;需要加上所属的模块…

ADC基础进阶

ADC 啊.... 拿华大的来举例吧... 最少要知道了两个电路。 1. VERF 华大HC32F60的ADC以VREF为内部基准电压&#xff0c;如果VREFH管教悬空&#xff0c;那么实际其基准电压应该是MCU_3.3V&#xff0c;如果VREFH额外搭电路提供电压&#xff0c;应该是以其实际提供的电压为准&am…

Uber是如何解决数据一致性问题的呢?

Uber的请求流程非常复杂&#xff0c;如上图所示&#xff0c;他们使用Spanner来存储大量数据。Spanner是一个全面托管的、关键的关系型数据库服务&#xff0c;可以在全球范围内提供事务一致性和高可用性的自动同步复制。 但是&#xff0c;当扩展到数百万并发请求时&#xff0c;使…

【2023 年第二届钉钉杯大学生大数据挑战赛】 初赛 B:美国纽约公共自行车使用量预测分析 问题一Python代码分析

2023 年第二届钉钉杯大学生大数据挑战赛 初赛 B&#xff1a;美国纽约公共自行车使用量预测分析 问题一 1 题目 Citi Bike是纽约市在2013年启动的一项自行车共享出行计划&#xff0c;由“花旗银行”(Citi Bank)赞助并取名为“花旗单车”(Citi Bike)。在曼哈顿&#xff0c;布鲁克…

PID算法:标准PID算法的一些改进措施

前面的几篇文章分别分享了PID算法的原理、增量式和位置式PID算法的区别、以及过程控制中一些重要的指标&#xff0c;感兴趣的朋友可以回看之前的文章或者自行查阅资料。 在实际项目中&#xff0c;使用数字PID算法对系统的被控量进行控制的时候&#xff0c;有时候并不是仅仅的使…

面试之可重复读是否可以解决幻读

可重复读&#xff08;repeatable read&#xff09;定义:一个事务执行过程中看到的数据&#xff0c;总是跟这个事务在启动时看到的数据时是一致的。 不过理论上 是会出现幻读的&#xff0c;简单的来说幻读指的是当用户读取某一范围的数据行时&#xff0c;另外一个事务又在该范围…

一个PDF怎么拆分成几个?这几个方法轻松拆分PDF!

在现代生活与工作的环境中&#xff0c;我们常常需要以高效的方式处理包含大量信息的PDF文件。在这种情况下&#xff0c;拆分这些文件成为一种理想的解决方案&#xff0c;以便更精准地管理和阅读这些信息。接下来&#xff0c;我们将深入探讨几种实用的PDF拆分技巧。 一、直观的…

postman-循环调用测试接口

此篇文章产生的背景是想针对接口做流控验证&#xff0c;检查流控是否奏效&#xff0c;便发现postman也能一次操作来循环调用接口&#xff0c;减少了一些开发测试工作&#xff0c;下面就看一下操作流程 目录 前置查看postman版本我的接口数据 具体操作步骤新建接口集选择接口集进…

FL Studio Producer Edition v21.0.3.3517 for Mac中文版解锁版下载

水果音乐编辑软件FL Studio Producer Edition v21.0.3.3517 for Mac中文版解锁版下载是兔八哥爱分享搜集到的Mac Os系统上一款功能齐全的音乐编曲工具&#xff0c;可以为需要创作高品质音乐曲目的专业和业余艺术家提供多轨录音&#xff0c;排序和混音。 借助FL Studio 21的帮助…

运动模糊还原|维纳滤波|图像处理

前言 那么这里博主先安利一些干货满满的专栏了&#xff01; 这两个都是博主在学习Linux操作系统过程中的记录&#xff0c;希望对大家的学习有帮助&#xff01; 操作系统Operating Syshttps://blog.csdn.net/yu_cblog/category_12165502.html?spm1001.2014.3001.5482Linux S…

《Ansible故障篇:ansible报错解决python依赖》

一、背景信息 如下报错&#xff1a;这个警告是提醒您当前的Ansible配置在目标主机上使用的是/usr/bin/python而不是建议的/usr/bin/python3&#xff0c;因为Ansible 2.9版本之前的某些版本默认使用早期的Python 2.x版本。然而&#xff0c;在将来的版本中&#xff0c;Ansible将会…

xpath下载安装——Python爬虫xpath插件下载安装(2023.7亲测可用!!)

目录 1.免费下载插件链接&#xff08;若失效评论区留言发送最新链接&#xff09;&#xff08;2023.7亲测可用&#xff09; 2.安装插件 &#xff08;1&#xff09;打开chrome浏览器页面&#xff0c;点击&#xff1a;右上角三个点 > 扩展程序 > 管理拓展程序 &#xff…

leedcode 1326. 灌溉花园的最少水龙头数目

在 x 轴上有一个一维的花园。花园长度为 n&#xff0c;从点 0 开始&#xff0c;到点 n 结束。 花园里总共有 n 1 个水龙头&#xff0c;分别位于 [0, 1, …, n] 。 给你一个整数 n 和一个长度为 n 1 的整数数组 ranges &#xff0c;其中 ranges[i] &#xff08;下标从 0 开始…