【小沐学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-windows1.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!