1

我正在使用 Qt 5.11.2 / osgEarth 2.9.0。

当我尝试运行下面的代码时,出现错误:

不能在不同的线程中使 QOpenGLContext 当前

我试图在互联网上找到解决方案,但只发现了类似的情况,即人们只是重写他们的一些代码,即使没有 osgEarth。但是,如果您从我的代码中删除 Qt 输出(最后 2 行),一切正常,因此我得出结论认为问题不在我的代码中。也许我忘了安装一些软件包?还是安装不正确?

代码:

Viewer *viewer = new Viewer();
EarthManipulator *manipulator = new EarthManipulator();
viewer->setLightingMode(osg::View::NO_LIGHT);
viewer->getCamera()->setSmallFeatureCullingPixelSize(-1.0f);
viewer->setCameraManipulator(manipulator);

Map map = new Map();
MapNode mapnode = new MapNode(map);

Drivers::XYZOptions xyz;
xyz.url() = "http://[abc].tile.openstreetmap.org/{z}/{x}/{y}.png";
xyz.profile()->namedProfile() = "spherical-mercator";
ImageLayer* imageLayer = new ImageLayer("OSM", xyz);
map->addLayer(imageLayer);

viewer->setSceneData(mapnode);
MapNodeHelper().configureView(viewer);

QWidget *viewerWidget = new ViewerWidget(viewer);
layout->addWidget(viewerWidget);
4

0 回答 0