Skip to content

A free open source C++ terrain rendering toolkit.

License

Notifications You must be signed in to change notification settings

emminizer/osgearth

This branch is 87 commits behind gwaldron/osgearth:master.

Folders and files

NameName
Last commit message
Last commit date
Jan 31, 2025
Feb 3, 2025
Jan 28, 2025
Dec 20, 2024
Jan 30, 2025
Jan 31, 2025
Jan 31, 2025
Oct 22, 2024
Nov 24, 2023
Jul 11, 2024
Sep 11, 2023
Feb 3, 2025
Sep 26, 2014
Oct 29, 2024
Oct 21, 2024

Repository files navigation

Windows Linux OSX

Welcome to osgEarth!

osgEarth adds geospatially accurate 3D maps to your C++ application.

osgEarth builds on trusted open source technologies like OpenSceneGraph and GDAL to give you high-performance, accurate terrain and map rendering. It supports a myriad of geospatial data formats and map projections.

Install the SDK

Windows users can install the latest version of osgEarth through vcpkg:

git clone https://github.com/microsoft/vcpkg.git
cd vcpkg && bootstrap-vcpkg.bat
vcpkg install osgearth:x64-windows

This will take a while the first time as vcpkg builds osgEarth and its dependencies.

Check out some examples

osgearth_imgui is the main command-line viewer. osgearth_viewer is a stripped-down viewer without any GUI. Both of these read "earth files", XML files that describe the contents of a map.

You can find example earth files in the tests folder of the repo.

:: Online imagery and elevation:
osgearth_imgui tests\readymap.earth

:: OpenStreetMap:
osgearth_imgui tests\osm.earth

:: Local GeoTIFFs:
osgearth_imgui tests\simple.earth 

Integrate it into your project

CMakeLists.txt

cmake_minimum_required(VERSION 3.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>

int main(int argc, char** argv)
{
    osgEarth::initialize();
    
    osg::ArgumentParser args(&argc, argv);
    osgViewer::Viewer viewer(args);
    
    auto imagery = new osgEarth::TMSImageLayer();
    imagery->setURL("https://readymap.org/readymap/tiles/1.0.0/7/");
    
    auto mapNode = new osgEarth::MapNode();
    mapNode->getMap()->addLayer(imagery);
    
    viewer.setSceneData(mapNode);
    viewer.setCameraManipulator(new osgEarth::EarthManipulator(args));
    
    return viewer.run();
}

Resources


© Copyright Pelican Mapping

About

A free open source C++ terrain rendering toolkit.

Resources

License

Stars

Watchers

Forks

Languages

  • C++ 56.7%
  • C 42.1%
  • GLSL 0.7%
  • CMake 0.3%
  • Go 0.1%
  • Java 0.1%