✨ From vibe coding to vibe deployment. UBOS MCP turns ideas into infra with one message.

Learn more

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 testsreadymap.earth

:: OpenStreetMap:
osgearth_imgui testsosm.earth

:: Local GeoTIFFs:
osgearth_imgui testssimple.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

  • Documentation
  • Gallery
  • Custom Software Development

© Copyright Pelican Mapping

Featured Templates

View More
AI Assistants
Talk with Claude 3
156 1166
AI Assistants
Image to text with Claude 3
150 1122
AI Agents
AI Video Generator
249 1348 5.0
AI Characters
Sarcastic AI Chat Bot
128 1440

Start your free trial

Build your solution today. No credit card required.

Sign In

Register

Reset Password

Please enter your username or email address, you will receive a link to create a new password via email.