目标:(一)中问题6
地图map图层构建完成后,就可以用这个map来构建地图节点osgEarth::MapNode了。
osgEarthDrivers/earth/EarthFileSerialize2.cpp
osg::Node*
EarthFileSerializer2::deserialize( const Config& conf, const std::string& referrer ) const
{
MapNodeOptions mapNodeOptions( conf.child("options") );
osg::ref_ptr<MapNode> mapNode = new MapNode( map.get(), mapNodeOptions );
}
osgEarth::MapNode的构造函数主要初始化其成员_map和_mapNodeOptions,然后调用其init方法。其中mapNodeOptions包含了创建的一些选项信息,如果使用Rex地理信息引擎,earth文件中option的配置如下:
<map name="MBTiles" type="geocentric" version="2">
<options>
<terrain driver="rex"/>
</options>
</map>
init方法主要是根据earth文件中地理信息配置创建地理信息引擎_terrainEngine(比如osgEarth::Drivers::RexTerrainEngine::RexTer