osgearth海洋与云层

在这里插入图片描述

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
下面是在osgEarth 3.2中添加一个云层layer的示例代码: ```cpp #include <osgEarth/Map> #include <osgEarth/MapNode> #include <osgEarthUtil/Sky> #include <osgEarthUtil/Controls> #include <osgEarthUtil/LayerManipulator> using namespace osgEarth; using namespace osgEarth::Util; int main(int argc, char** argv) { // 创建一个地图 osg::ref_ptr<Map> map = new Map(); // 创建一个图层 osg::ref_ptr<Layer> layer = new ImageLayer( new ImageLayerOptions("Clouds", "http://tile.openweathermap.org/map/clouds_new/0/0/0.png", ProfileOptions(), ImageLayerOptions::IMAGE, osgEarth::optional<int>(7))); // 将图层添加到地图中 map->addLayer(layer.get()); // 创建一个地图节点 osg::ref_ptr<MapNode> mapNode = new MapNode(map.get()); // 创建一个控制器 osg::ref_ptr<osgEarth::Util::EarthManipulator> manipulator = new osgEarth::Util::EarthManipulator(); // 创建一个天空节点 osg::ref_ptr<osgEarth::Util::SkyNode> skyNode = new osgEarth::Util::SkyNode(); skyNode->attach(mapNode.get()); skyNode->setDateTime(DateTime(2019, 7, 1, 12, 0, 0)); // 设置相机 osg::ref_ptr<osg::Camera> camera = new osg::Camera(); camera->setViewport(0, 0, 800, 600); camera->setClearColor(osg::Vec4(0.2, 0.2, 0.6, 1.0)); camera->setProjectionMatrixAsPerspective(30.0, 800.0 / 600.0, 1.0, 100000.0); camera->setViewMatrixAsLookAt(osg::Vec3d(0.0, 0.0, 1000000.0), osg::Vec3d(), osg::Vec3d(0.0, 1.0, 0.0)); // 创建一个场景图节点 osg::ref_ptr<osg::Group> root = new osg::Group(); root->addChild(mapNode.get()); root->addChild(skyNode.get()); root->addChild(manipulator.get()); root->addChild(camera.get()); // 添加图层控制器 osg::ref_ptr<osgEarth::Util::LayerManipulator> layerManipulator = new osgEarth::Util::LayerManipulator(mapNode.get()); layerManipulator->setTerrainEnabled(false); layerManipulator->setDynamic(true); root->addChild(layerManipulator.get()); // 运行场景 osgViewer::Viewer viewer; viewer.setSceneData(root.get()); viewer.run(); return 0; } ``` 这个示例代码中,我们使用 `ImageLayer` 类创建一个云层图层,并将其添加到地图中。然后创建一个地图节点、一个控制器、一个天空节点和一个相机,并将它们都添加到一个场景图节点中。最后添加一个图层控制器,用于控制图层的显示。运行程序后,你应该能够看到一个带有云层的地球。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值