本文整理汇总了C++中TileMap::createProfile方法的典型用法代码示例。如果您正苦于以下问题:C++ TileMap::createProfile方法的具体用法?C++ TileMap::createProfile怎么用?C++ TileMap::createProfile使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TileMap
的用法示例。
在下文中一共展示了TileMap::createProfile方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: if
TileMap*
TileMapReaderWriter::read( const Config& conf )
{
const Config* tileMapConf = conf.find( ELEM_TILEMAP );
if ( !tileMapConf )
{
OE_WARN << LC << "Could not find root TileMap element " << std::endl;
return 0L;
}
TileMap* tileMap = new TileMap();
tileMap->setVersion ( tileMapConf->value(ATTR_VERSION) );
tileMap->setTileMapService( tileMapConf->value(ATTR_TILEMAPSERVICE) );
tileMap->setTitle ( tileMapConf->value(ELEM_TITLE) );
tileMap->setAbstract ( tileMapConf->value(ELEM_ABSTRACT) );
tileMap->setSRS ( tileMapConf->value(ELEM_SRS) );
if (tileMapConf->hasValue(ELEM_VERTICAL_SRS))
tileMap->setVerticalSRS( tileMapConf->value(ELEM_VERTICAL_SRS) );
if (tileMapConf->hasValue(ELEM_VERTICAL_DATUM))
tileMap->setVerticalSRS( tileMapConf->value(ELEM_VERTICAL_DATUM) );
const Config* bboxConf = tileMapConf->find( ELEM_BOUNDINGBOX );
if ( bboxConf )
{
double minX = bboxConf->value<double>( ATTR_MINX, 0.0 );
double minY = bboxConf->value<double>( ATTR_MINY, 0.0 );
double maxX = bboxConf->value<double>( ATTR_MAXX, 0.0 );
double maxY = bboxConf->value<double>( ATTR_MAXY, 0.0 );
tileMap->setExtents( minX, minY, maxX, maxY);
}
//Read the origin
const Config* originConf = tileMapConf->find(ELEM_ORIGIN);
if ( originConf )
{
tileMap->setOriginX( originConf->value<double>( ATTR_X, 0.0) );
tileMap->setOriginY( originConf->value<double>( ATTR_Y, 0.0) );
}
//Read the tile format
const Config* formatConf = tileMapConf->find( ELEM_TILE_FORMAT );
if ( formatConf )
{
OE_DEBUG << LC << "Read TileFormat " << formatConf->value(ATTR_EXTENSION) << std::endl;
tileMap->getFormat().setExtension( formatConf->value(ATTR_EXTENSION) );
tileMap->getFormat().setMimeType ( formatConf->value(ATTR_MIME_TYPE) );
tileMap->getFormat().setWidth ( formatConf->value<unsigned>(ATTR_WIDTH, 256) );
tileMap->getFormat().setHeight ( formatConf->value<unsigned>(ATTR_HEIGHT, 256) );
}
else
{
OE_WARN << LC << "No TileFormat in TileMap!" << std::endl;
}
//Read the tilesets
const Config* tileSetsConf = tileMapConf->find(ELEM_TILESETS);
if ( tileSetsConf )
{
//Read the profile
std::string profile = tileSetsConf->value(ATTR_PROFILE);
if (profile == "global-geodetic") tileMap->setProfileType( Profile::TYPE_GEODETIC );
else if (profile == "global-mercator") tileMap->setProfileType( Profile::TYPE_MERCATOR );
else if (profile == "local") tileMap->setProfileType( Profile::TYPE_LOCAL );
else tileMap->setProfileType( Profile::TYPE_UNKNOWN );
//Read each TileSet
const ConfigSet& setConfs = tileSetsConf->children(ELEM_TILESET);
for( ConfigSet::const_iterator i = setConfs.begin(); i != setConfs.end(); ++i )
{
const Config& conf = *i;
TileSet tileset;
tileset.setHref( conf.value(ATTR_HREF) );
tileset.setOrder( conf.value<unsigned>(ATTR_ORDER, ~0) );
tileset.setUnitsPerPixel( conf.value<double>(ATTR_UNITSPERPIXEL, 0.0) );
tileMap->getTileSets().push_back(tileset);
}
}
//Try to compute the profile based on the SRS if there was no PROFILE tag given
if (tileMap->getProfileType() == Profile::TYPE_UNKNOWN && !tileMap->getSRS().empty())
{
tileMap->setProfileType( Profile::getProfileTypeFromSRS(tileMap->getSRS()) );
}
tileMap->computeMinMaxLevel();
tileMap->computeNumTiles();
//Read the data areas
const Config* extentsConf = tileMapConf->find(ELEM_DATA_EXTENTS);
if ( extentsConf )
{
osg::ref_ptr< const osgEarth::Profile > profile = tileMap->createProfile();
OE_DEBUG << LC << "Found DataExtents " << std::endl;
const ConfigSet& children = extentsConf->children(ELEM_DATA_EXTENT);
for( ConfigSet::const_iterator i = children.begin(); i != children.end(); ++i )
{
const Config& conf = *i;
double minX = conf.value<double>(ATTR_MINX, 0.0);
//.........这里部分代码省略.........