osg学习(四十四)读取earth文件的几种方式

1、

osg::Group* node = MapNodeHelper().load(arguments, &viewer);

2、

    osg::ref_ptr<osgDB::Options> myReadOptions = osgEarth::Registry::cloneOrCreateOptions(0);
    Config c;
    c.add("elevation_smoothing", false);
    TerrainOptions to(c);
    MapNodeOptions defMNO;
    defMNO.setTerrainOptions( to );
    myReadOptions->setPluginStringData("osgEarth.defaultOptions", defMNO.getConfig().toJSON());
    osg::ref_ptr<osg::Node> node = osgDB::readNodeFile("D:\\OSG_OAGEARTH_x86\\tests\\mb_tiles_test.earth",myReadOptions);

还可以进一步简化为

    osg::ref_ptr<osgDB::Options> myReadOptions = osgEarth::Registry::cloneOrCreateOptions(0);    
    osg::ref_ptr<osg::Node> node = osgDB::readNodeFile("D:\\OSG_OAGEARTH_x86\\tests\\mb_tiles_test.earth",myReadOptions);

 

第二种方法的viewpoints显示不出来,

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
osgEarth 是一个基于 OpenSceneGraph 的地理信息渲染引擎,它可以加载各种格式的地图数据,包括矢量地图、栅格地图和影像地图等。osgEarth 通过地图图层的方式来加载和渲染地图,因此,要加载地图需要定义一个或多个图层。 osgEarth 支持多种方式加载地图切片,其中一种方式就是通过 Earth 文件来定义图层和加载地图切片。Earth 文件是一种 XML 格式的文件,它包含了定义图层和地图切片的信息。以下是一个 Earth 文件的示例: ``` <earth> <layer name="OpenStreetMap" type="tms"> <url>http://tile.openstreetmap.org/${z}/${x}/${y}.png</url> <profile>global-mercator</profile> </layer> </earth> ``` 上面的 Earth 文件定义了一个名为 "OpenStreetMap" 的图层,它的类型为 "tms",即 TMS 格式的瓦片地图。图层的切片 URL 为 "http://tile.openstreetmap.org/${z}/${x}/${y}.png",其中 ${z}、${x} 和 ${y} 表示瓦片的行列号和层级。图层的投影方式为 "global-mercator",即 WGS84 Web Mercator 投影。 要在 osgEarth 中加载这个地图,可以使用以下代码: ``` osg::ref_ptr<osgEarth::Map> map = new osgEarth::Map(); map->load("path/to/earth/file.earth"); osg::ref_ptr<osgEarth::MapNode> mapNode = new osgEarth::MapNode(map); viewer.setSceneData(mapNode); ``` 上面的代码首先创建一个 Map 对象,并通过 load() 方法加载 Earth 文件。然后创建一个 MapNode 对象,并将其设置为场景根节点。这样就可以在场景中显示加载的地图了。 需要注意的是,要使用 Earth 文件加载地图需要确保 Earth 文件中定义的图层数据可用,并且与 osgEarth 版本兼容。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值