目标:(一二六)中问题213
<image name="mapbox_satellite" driver="xyz">
<url>http://online2.map.bdimg.com/tile/?qt=tile&x={x}&y={y}&z={z}&styles=pl&udt=20171031&scaler=1&p=1</url>
<profile>global-geodetic
<num_tiles_wide_at_lod_0>8</num_tiles_wide_at_lod_0>
<num_tiles_high_at_lod_0>8</num_tiles_high_at_lod_0>
</profile>
</image>
osgEarthDrivers/earth/EarthFileSerializers2.cpp
bool addLayer(const Config& conf, Map* map)
{
std::string name = conf.key();
Layer* layer = Layer::create(name, conf);
if (layer)
{
map->addLayer(layer);
}
return layer != 0L;
}
ImageLayerOptions的属性及设置
osgEarth/ImageLayer.cpp
void
ImageLayerOptions::fromConfig(const Config& conf)
{
conf.getIfSet( "nodata_image", _noDataImageFilename );
conf.getIfSet( "min_range", _minRange );
conf.getIfSet( "max_range", _maxRange );
conf.getIfSet( "shared", _shared );
conf.getIfSet( "coverage", _coverage );
conf.getIfSet( "feather_pixels", _featherPixels);
if ( conf.hasValue( "transparent_color" ) )
_transparentColor = stringToColor( conf.value( "transparent_color" ), osg::Vec4ub(0,0,0,0));
if ( conf.hasChild("color_filters") )
{
_colorFilters.clear();
ColorFilterRegistry::instance()->readChain( conf.child("color_filters"), _colorFilters );
}
conf.getIfSet("mag_filter","LINEAR", _magFilter,osg::Texture::LINEAR);
conf.getIfSet("mag_filter","LINEAR_MIPMAP_LINEAR", _magFilter,osg::Texture::LINEAR_MIPMAP_LINEAR);
conf.getIfSet("mag_filter","LINEAR_MIPMAP_NEAREST", _magFilter,osg::Texture::LINEAR_MIPMAP_NEAREST);
conf.getIfSet("mag_filter","NEAREST", _magFilter,osg::Texture::NEAREST);
conf.getIfSet("mag_filter","NEAREST_MIPMAP_LINEAR", _magFilter,osg::Texture::NEAREST_MIPMAP_LINEAR);
conf.getIfSet("mag_filter","NEAREST_MIPMAP_NEAREST",_magFilter,osg::Texture::NEAREST_MIPMAP_NEAREST);
conf.getIfSet("min_filter","LINEAR", _minFilter,osg::Texture::LINEAR);
conf.getIfSet("min_filter","LINEAR_MIPMAP_LINEAR", _minFilter,osg::Texture::LINEAR_MIPMAP_LINEAR);
conf.getIfSet("min_filter","LINEAR_MIPMAP_NEAREST", _minFilter,osg::Texture::LINEAR_MIPMAP_NEAREST);
conf.getIfSet("min_filter","NEAREST", _minFilter,osg::Texture::NEAREST);
conf.getIfSet("min_filter","NEAREST_MIPMAP_LINEAR", _minFilter,osg::Texture::NEAREST_MIPMAP_LINEAR);
conf.getIfSet("min_filter","NEAREST_MIPMAP_NEAREST",_minFilter,osg::Texture::NEAREST_MIPMAP_NEAREST);
conf.getIfSet("texture_compression", "none", _texcomp, osg::Texture::USE_IMAGE_DATA_FORMAT);
conf.getIfSet("texture_compression", "auto", _texcomp, (osg::Texture::InternalFormatMode)~0);
conf.getIfSet("texture_compression", "fastdxt", _texcomp, (osg::Texture::InternalFormatMode)(~0 - 1));
//TODO add all the enums
// uniform names
conf.getIfSet("shared_sampler", _shareTexUniformName);
conf.getIfSet("shared_matrix", _shareTexMatUniformName);
}
TerrainLayerOptions的属性及设置
osgEarth/TerrainLayer.cpp
void
TerrainLayerOptions::fromConfig(const Config& conf)
{
conf.getIfSet( "min_level", _minLevel );
conf.getIfSet( "max_level", _maxLevel );
conf.getIfSet( "min_resolution", _minResolution );
conf.getIfSet( "max_resolution", _maxResolution );
conf.getIfSet( "max_data_level", _maxDataLevel );
conf.getIfSet( "edge_buffer_ratio", _edgeBufferRatio);
conf.getIfSet( "reprojected_tilesize", _reprojectedTileSize);
conf.getIfSet( "vdatum", _vertDatum );
conf.getIfSet( "vsrs", _vertDatum ); // back compat
conf.getObjIfSet( "proxy", _proxySettings );
conf.getIfSet("no_data_value", _noDataValue);
conf.getIfSet("nodata_value", _noDataValue); // bac