osgEarth真HelloWorld
- vcpkg install
- tests
vcpkg install
osgEarth安装指南 https://docs.osgearth.org/en/latest/install.html,
预先设置ports/osg/portfile.cmake GL3
否则调用osg相关功能时会出现如下提示
OpenSceneGraph does not define OSG_GL3_AVAILABLE;
0(52) : error C7616: global variable gl_ModelViewMatrix is removed after version 140
install目录
tests
osgEarth Github源码中包含 tests 和 data 目录
#include <osgEarth/Common>
#include <gdal_priv.h>
#include <ogr_api.h>
#include <ogr_core.h>
#include <ogr_feature.h>
#include <ogr_geometry.h>
#include <ogrsf_frmts.h>
#include <iostream>
#include <osgViewer/Viewer>
#include <osg/Vec3d>
#include <osg/MatrixTransform>
#include <osgDB/ReadFile>
#include <osgEarth/EarthManipulator>
#include <osgEarth/MapNode>
#include <osgEarth/GDAL>
#include <osgEarth/OGRFeatureSource>
#include <osgEarth/FeatureImageLayer>
#include <osgEarth/GeoTransform>
int main(int argc, char** argv)
{
// OGRRegisterAll();
// GDALAllRegister();
// CPLSetConfigOption("CPL_DEBUG", "YES");
osgEarth::initialize();
{
// map
const std::string map_full_name = R"(D:\Library\osgearth-master\tests\simple.earth)";
osg::Node* globe = osgDB::readNodeFile(map_full_name);
osgEarth::MapNode* mapNode = osgEarth::MapNode::get(globe);
// viewer
osgViewer::Viewer viewer;
viewer.setSceneData(mapNode);
// manipulator
osg::ref_ptr<osgEarth::Util::EarthManipulator> mainManipulator = new osgEarth::Util::EarthManipulator;
viewer.setCameraManipulator(mainManipulator);
// run
viewer.setUpViewInWindow(100, 100, 800, 600);
viewer.run();
}
return 0;
}
运行如下