5.OsgEarth加载地形

news/2025/3/16 2:12:24/

愿你出走半生,归来仍是少年!

        在三维场景中除了使用影像体现出地貌情况,还需要通过地形体现出地势起伏,还原一个相对真实的三维虚拟世界。

        osgEarth可通过直接加载Dem数据进行场景内的地形构建。

1.数据准备

        由于我也没有高程数据,所以在地理空间数据源中下载。

地理空间数据云 (gscloud.cn)

登录后选择
数据下载

         数据下载后可通过ArcMap或者QGis将其转换为Wgs84的Tif格式数据。

2.代码

        通过OsgEarth的GDALElevationLayer类构建地形图层并进行加载完成地形的构建。

/// <summary>
/// 通过本地的tif(dem)数据创建地形图层
/// </summary>
/// <param name="fileFullName"></param>
/// <returns></returns>
osgEarth::GDALElevationLayer* Cv::LayerFactory::CreateTerrainLayer(std::string fileFullName)
{osgEarth::GDALElevationLayer* ly = new osgEarth::GDALElevationLayer();ly->setURL(fileFullName);int pos = fileFullName.find_last_of('\\', fileFullName.length());auto name = fileFullName.substr(pos);ly->setName(name);return ly;
}

3.效果

大场景下明显的地形隆起(正方形范围)
边缘处抬起的地形
近处的地形起伏

http://www.ppmy.cn/news/1182129.html

相关文章

Power BI 傻瓜入门 15. DAX功能带来乐趣

本章的内容包括&#xff1a; 了解DAX中的功能使用DAX函数制作定义明确的公式发现哪些DAX函数可以帮助解决复杂的数据计算或操作需求 在第14章中&#xff0c;我将讨论函数如何成为计算表达式中命名公式的一部分。作为提出计算表达式的人&#xff0c;您是为函数提供特定参数的人…

10款轻量型的嵌入式GUI库分享

LVGL LittlevGL是一个免费的开源图形库&#xff0c;提供了创建嵌入式GUI所需的一切&#xff0c;具有易于使用的图形元素、漂亮的视觉效果和低内存占用。 特点&#xff1a; 强大的构建模组 按钮、图表、列表、滑块、图像等 ​先进的图形 动画、反锯齿、半透明、平滑滚动 多样…

基于Pytest+Requests+Allure实现接口自动化测试!

一、整体结构 框架组成&#xff1a;pytestrequestsallure设计模式&#xff1a; 关键字驱动项目结构&#xff1a; 工具层&#xff1a;api_keyword/参数层&#xff1a;params/用例层&#xff1a;case/数据驱动&#xff1a;data_driver/数据层&#xff1a;data/逻辑层&#xff1a…

【C++项目】高并发内存池第六讲 当申请内存大于256K时的处理

目录 1.申请过程2.释放过程 1.申请过程 当申请的内存大于256kb时直接向堆中申请&#xff1a; static void* ConcurrentAlloc(size_t size) {if (size > MAX_BYTES){size_t alignSize SizeClass::RoundUp(size);size_t kpage alignSize >> PAGE_SHIFT;PageCache::…

BIOS MBR UEFI GPT详解

先来看下名词 启动方式&#xff1a; BIOS&#xff1a;Basic Input Output System&#xff0c;中文名称"基本输入输出系统"。 UEFI&#xff1a;Unified Extensible Firmware Interface&#xff0c;中文名称"统一的可扩展固件接口"。 Legacy&#xff1a;…

大厂面试题-JVM中的三色标记法是什么?

目录 问题分析 问题答案 问题分析 三色标记法是Java虚拟机(JVM)中垃圾回收算法的一种&#xff0c;主要用来标记内存中存活和需要回收的对象。 它的好处是&#xff0c;可以让JVM不发生或仅短时间发生STW(Stop The World)&#xff0c;从而达到清除JVM内存垃圾的目的&#xff…

Kotlin基础——枚举、When、in、for

枚举 声明只有值的枚举 enum class Color {RED, GREEN, BLUE }此外还可以增加属性和方法&#xff0c;如果需要在枚举类中定义方法&#xff0c;要使用分号把枚举常量列表和方法定义分开&#xff0c;这也是Kotlin唯一必须使用分号的地方 enum class Color(val r: Int, val g: …

C#8.0本质论第十章--合式类型

C#8.0本质论第十章–合式类型 10.1重写object的成员 10.1.1重写ToString() 在对象上调用ToString()默认返回类的完全限定名称。 10.1.2重写GetHashCode() 如果重写Equals()&#xff0c;就要重写GetHashCode()&#xff0c;否则编译器会显示警告。 10.1.3重写Equals() “对…