【小沐学GIS】基于C++绘制三维数字地球Earth(osgEarth、三维瓦片地球)第十期

📅 2026/8/2 20:24:29 👁️ 阅读次数 📝 编程学习
【小沐学GIS】基于C++绘制三维数字地球Earth(osgEarth、三维瓦片地球)第十期
🍺三维数字地球GIS系列相关文章(C++)🍺:
1【小沐学GIS】基于C++绘制三维数字地球Earth(OpenGL、glfw、glut)第一期
2【小沐学GIS】基于C++绘制三维数字地球Earth(OpenGL、glfw、glut)第二期
3【小沐学GIS】基于C++绘制三维数字地球Earth(OpenGL、glfw、glut)第三期
4【小沐学GIS】基于C++绘制三维数字地球Earth(QT、OpenGL)第四期
5【小沐学GIS】基于C++绘制三维数字地球Earth(QT、OpenGL、Satellite、卫星轨道模拟)第五期
6【小沐学GIS】基于C++绘制三维数字地球Earth(OpenG、SolarSystem、太阳系模拟)第六期
7【小沐学GIS】基于C++绘制三维数字地球Earth(OpenGL、OpenSceneGraph / OSG)第七期
8【小沐学GIS】基于C++绘制三维数字地球Earth(OpenGL、二维瓦片地图)第八期
9【小沐学GIS】基于C++绘制三维数字地球Earth(OpenGL、三维瓦片地球)第九期
10【小沐学GIS】基于C++绘制三维数字地球Earth(osgEarth、三维瓦片地球)第十期
11【小沐学GIS】基于C++绘制OpenStreetMap地图矢量数据(QT、OpenGL、OSM、Mapbox)第十一期
12【小沐学GIS】基于C++绘制地形DEM(OpenGL、Terrain、TIFF、hgt)第十二期
🍺GIS系列相关辅助工具如下🍺:
1【小沐杂货铺】GIS瓦片地图下载工具(高德/天地图/谷歌/必应/OSM/MapBox/ArcGIS)
2【小沐杂货铺】GIS高程地形tif文件转obj/gltf三维模型工具(geotiff to obj/gltf、3d模型处理)
🍺三维数字地球GIS系列相关文章(其他语言)🍺:
1【小沐学GIS】基于C#绘制三维数字地球Earth(C#、OpenGL)
2【小沐学GIS】基于Python绘制三维数字地球Earth(Python、OpenGL、地球/太阳系/卫星)
3【小沐学GIS】基于Android绘制三维数字地球Earth(Android、OpenGL)
4【小沐学GIS】基于Golang绘制三维数字地球Earth(Go、OpenGL)
5【小沐学GIS】基于Rust绘制三维数字地球Earth(Rust、OpenGL)
6【小沐学GIS】基于Lua绘制三维数字地球Earth(Lua、OpenGL)
7【小沐学GIS】基于Java绘制三维数字地球Earth(Java、OpenGL)
8【小沐学GIS】基于Unity3d绘制三维数字地球Earth(Unity3d、OpenGL)
9【小沐学GIS】基于Vulkan绘制三维数字地球Earth(Vulkan)
10【小沐学GIS】基于Godot绘制三维数字地球Earth(Godot)
11【小沐学GIS】基于VTK绘制三维数字地球Earth(VTK)
12【小沐学GIS】基于Babylon.JS绘制三维数字地球Earth(Babylon.JS、vue、react)
🍺三维数字地球WebGIS系列相关文章(Three.JS)🍺:
1【小沐学WebGIS】基于Three.JS绘制三维数字地球Earth(WebGL、vue、react)
2【小沐学WebGIS】基于Three.JS绘制三维太阳系Solar System(three.js、WebGL)第一期
3【小沐学WebGIS】基于Three.JS绘制三维太阳系Solar System(three.js、WebGL)第二期
4【小沐学WebGIS】基于Three.JS绘制卫星模拟Satellite Tracker(three.js、vue、react、卫星)
5【小沐学WebGIS】基于Three.JS绘制OpenStreetMap地图矢量数据(WebGL、OSM、2d/3d)
6【小沐学WebGIS】基于Three.JS绘制地形DEM(Three.JS、WebGL、TIFF)
7【小沐学WebGIS】基于Three.JS绘制瓦片地图(Three.JS、WebGL、Mapbox)
8【小沐学WebGIS】基于Three.JS绘制飞行轨迹Flight Tracker(Three.JS/ vue / react / WebGL)
9【小沐学WebGIS】基于WebGL绘制三维数字地球Earth(WebGL、地球/卫星/航迹)
10【小沐学WebGIS】基于WebGL绘制二三维地图地球晨昏效果(Three.JS/ vue / react )
11【小沐学WebGIS】基于Three.JS绘制三维城市建筑(City / vue / react )
🍺Three.JS系列相关文章如下🍺:
1【小沐杂货铺】基于Three.JS构建IFC模型浏览器(WebGL、CAD、Revit、IFC)
2【小沐杂货铺】基于Three.JS绘制汽车展示Car(WebGL、vue、react、autoshow)第1期
3【小沐杂货铺】基于Three.JS绘制汽车展示Car(WebGL、vue、react、autoshow)第2期
4【小沐杂货铺】基于Three.JS绘制云图/热力图/CAE物理场渲染(Three.JS、WebGL、CAE、heatmap)
5【小沐杂货铺】基于Three.js渲染三维风力发电机(WebGL、vue、react、WindTurbine)
6【小沐杂货铺】基于Three.js渲染三维船舶航行仿真(WebGL、vue、react、ship/boat/vessel)
7【小沐杂货铺】基于Three.js绘制三维管道Pipe(WebGL、vue、react)
8【小沐杂货铺】基于Three.js绘制三维机械臂RobotArm(WebGL、vue、react)
9【小沐杂货铺】基于Three.JS绘制三维海面/海洋/水面(WebGL / vue / react )
10【小沐杂货铺】基于Three.JS构建三维虚拟教学实践课程(WebGL / vue / react )
11【小沐杂货铺】基于Three.JS绘制URDF机器人模型(WebGL / vue / react )
12【小沐杂货铺】基于Three.JS绘制动物世界Animal(WebGL / vue / react )
13【小沐杂货铺】基于Three.js渲染三维飞行仿真Flight Simulation(WebGL / vue / react )
14【小沐杂货铺】基于Three.js渲染三维无人机Drone(WebGL / vue / react )
🍺三维数字地球WebGIS系列相关文章(Cesium.JS)🍺:
1【小沐学WebGIS】基于Cesium.JS绘制卫星轨迹Satellite Tracker(Cesium、vue、react)第1期
2【小沐学WebGIS】基于Cesium.JS绘制卫星轨迹Satellite Tracker(Cesium、vue、react)第2期
3【小沐学WebGIS】基于Cesium.JS绘制飞行轨迹Flight Tracker(Cesium/ vue / react / czml / GPX)
4【小沐学WebGIS】基于Cesium.JS绘制雷达波束/几何体/传感器Sensor(Cesium / vue / react )
5【小沐学WebGIS】基于Cesium.JS桌面端适配地球卫星App(Cesium.js+QT/C#/MFC/Python/Electron)
6【小沐学WebGIS】基于Cesium.JS绘制火箭发射Rocket(Cesium、vue、react)
7【小沐学WebGIS】基于Cesium.JS与TacView ACMI联动仿真通信(Cesium、vue、react)
🍺AI系列相关文章🍺:
1【小沐学AI】基于AI大模型开发MCP Server服务(Cesium.JS、Three.JS、Blender)

文章目录

  • 1、简介
    • 1.1 osgEarth简介
    • 1.2 osgEarth下载
    • 1.3 三维地球实现
    • 1.4 入门代码
  • 2、代码测试
    • 2.1 代码1
    • 2.2 代码2
    • 2.3 代码3
    • 2.4 代码4
    • 2.5 代码5
    • 2.6 代码6
    • 2.7 代码7
    • 2.8 代码8
    • 2.9 代码9
    • 2.10 代码10
    • 2.11 代码11
    • 2.12 代码12
  • 结语

1、简介

1.1 osgEarth简介

https://github.com/gwaldron/osgearth
osgEarth是基于三维引擎osg开发的三维数字地球引擎库,在osg基础上实现了瓦片调度插件,可选的四叉树调度插件,更多的地理数据加载插件(包括GDAL,ogr,WMS,TMS,VPB,filesystem等),再结合一套地理投影转换插件,这样就能够实现高效处理加载调度地理数据在三维地球上的显示,实现三维虚拟地球。

1.2 osgEarth下载

https://docs.osgearth.org/en/latest/

使用以下命令在 Windows 上手动安装 osgEarth:

vcpkginstallosgearth:x64-windows

1.3 三维地球实现


1.4 入门代码

CMakeLists.txt:

cmake_minimum_required(VERSION3.20)project(myApp)find_package(osgEarth CONFIG REQUIRED)add_executable(myApp main.cpp)target_link_libraries(myApp PRIVATE osgEarth::osgEarth)install(TARGETS myApp RUNTIME DESTINATION bin)

main.cpp:

#include<osgEarth/MapNode>#include<osgEarth/TMS>#include<osgEarth/EarthManipulator>#include<osg/ArgumentParser>#include<osgViewer/Viewer>intmain(intargc,char**argv){osgEarth::initialize();osg::ArgumentParserargs(&argc,argv);osgViewer::Viewerviewer(args);autoimagery=newosgEarth::TMSImageLayer();imagery->setURL("https://readymap.org/readymap/tiles/1.0.0/7/");automapNode=newosgEarth::MapNode();mapNode->getMap()->addLayer(imagery);viewer.setSceneData(mapNode);viewer.setCameraManipulator(newosgEarth::EarthManipulator(args));returnviewer.run();}

2、代码测试

2.1 代码1

代码编号:G1_1_OsgEarth_3dEarth_viewer


2.2 代码2

代码编号:G1_2_OsgEarth_3dEarth_PluginGIS

基于 osgEarth 3.4 + Qt 5.14 + VS2019 的 Atlas 三维 GIS 可视化平台,融合 QGIS 与 Google Earth 特性,支持倾斜摄影、点云、插件系统和多种地理数据格式。

2.3 代码3

代码编号:G1_3_OsgEarth_3dEarth_MFC_TileSwitch


基于 osgEarth 3.4 + MFC + VS2019 的桌面三维地球,支持高德、Google、ArcGIS 等十余种瓦片源一键切换,含性能诊断日志。

2.4 代码4

代码编号:G1_4_OsgEarth_3dEarth_Qt2D3DPlot


基于 osgEarth 3.2 + Qt 5.15 + VS2019 的数字地球标绘程序,通过自定义 DigitalEarthSDK 库实现插件化加载,适用于基础 GIS 图层展示和地图标绘。

2.5 代码5

代码编号:G1_5_OsgEarth_3dEarth_TileRefreshSky

基于 osgEarth 3.4 + Qt 5.14 + VS2017 的瓦片刷新与天空效果研究工程,解决白锯齿、瓦片明暗块差异等问题,实现自定义天空节点和昼夜渐变着色器。

2.6 代码6

代码编号:G1_6_OsgEarth_3dEarth_CudaHeatmap


基于 osgEarth 3.4 + CUDA 12.4 + VS2017 的 GPU 热力图工程,使用 osgCompute/osgCuda 将经纬度热点数据计算为热力纹理,叠加于地球表面。

2.7 代码7

代码编号:G1_7_OsgEarth_3dEarth_QtEmbedDemos

基于 osgEarth 3.4 + Qt 5.14 + VS2019 的 Qt 嵌入示例集合,包含完整数字地球应用、QEarthWidget 地图控件嵌入、osgQOpenGL 交互扩展三个子工程。

2.8 代码8

代码编号:G1_8_OsgEarth_3dEarth_TLE_SatOrbit


基于 osgEarth 3.4 + VS2019 的卫星轨道可视化工程,使用 SGP4/SDP4 模型(OrbitTools)计算 TLE 两行轨道数据,示例使用北斗卫星,支持实时轨道显示。

2.9 代码9

代码编号:G1_9_OsgEarth_3dEarth_RadarRange

基于 osgEarth 3.4 + VS2019 的雷达探测范围可视化工程,展示雷达覆盖区域三维几何体与地球模型的融合渲染。

2.10 代码10

代码编号:G1_10_OsgEarth_3dEarth_MFC_ModelLayers

基于 osgEarth 3.4 + MFC + VS2022 的数字地球,加载 OSG 模型、高程图、地形图和局部纹理,支持图层可见性控制和飞行定位。

2.11 代码11

代码编号:G1_11_OsgEarth_3dEarth_QtWinformGIS

基于 osgEarth 3.1/3.4 + Qt 5 + C# WinForms(.NET 5.0) + VS2019 的多客户端集成示例,含 SinianGIS 三维 GIS 软件移植,演示 C++/Qt 与 C#

2.12 代码12

代码编号:G1_12_OsgEarth_3dEarth_OSMBuildingsDEM

基于 osgEarth 3.4 + OSG 3.6.5 + VS2019 的 OSM 三维建筑示例,从本地 HTTP 服务加载建筑瓦片 JSON,结合 DEM 高程和在线卫星影像,使用 imgui 调试界面。

结语

如果您觉得这些文字有一点点用处,请给作者点个赞;╮( ̄▽ ̄)╭
如果您有技术问题探讨,评论处留言。//(ㄒoㄒ)//
谢谢各位童鞋们啦( ´ ▽ ` )ノ ( ´ ▽ `` )っ!
更多精彩文章详见微信公众号:爱阅读的小沐

如需技术探讨 / 软件定制 / 代码分享,请加文章末尾的微信公众号或QQ!