本文整理汇总了C++中TileMap::computeMinMaxLevel方法的典型用法代码示例。如果您正苦于以下问题:C++ TileMap::computeMinMaxLevel方法的具体用法?C++ TileMap::computeMinMaxLevel怎么用?C++ TileMap::computeMinMaxLevel使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TileMap
的用法示例。
在下文中一共展示了TileMap::computeMinMaxLevel方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: TileMap
TileMap*
TileMap::create(const std::string& url,
const Profile* profile,
const std::string& format,
int tile_width,
int tile_height)
{
//Profile profile(type);
const GeoExtent& ex = profile->getExtent();
TileMap* tileMap = new TileMap();
tileMap->setProfileType(profile->getProfileType()); //type);
tileMap->setExtents(ex.xMin(), ex.yMin(), ex.xMax(), ex.yMax());
tileMap->setOrigin(ex.xMin(), ex.yMin());
tileMap->_filename = url;
tileMap->_srs = getHorizSRSString(profile->getSRS());
tileMap->_vsrs = profile->getSRS()->getVertInitString();
//tileMap->_vsrs = profile->getVerticalSRS() ? profile->getVerticalSRS()->getInitString() : "";
tileMap->_format.setWidth( tile_width );
tileMap->_format.setHeight( tile_height );
tileMap->_format.setExtension( format );
profile->getNumTiles( 0, tileMap->_numTilesWide, tileMap->_numTilesHigh );
tileMap->generateTileSets();
tileMap->computeMinMaxLevel();
return tileMap;
}
示例2: e
TileMap*
TileMap::create(const std::string& url,
const Profile* profile,
const DataExtentList& dataExtents,
const std::string& format,
int tile_width,
int tile_height)
{
const GeoExtent& ex = profile->getExtent();
TileMap* tileMap = new TileMap();
tileMap->setProfileType(profile->getProfileType());
tileMap->setExtents(ex.xMin(), ex.yMin(), ex.xMax(), ex.yMax());
tileMap->setOrigin(ex.xMin(), ex.yMin());
tileMap->_filename = url;
tileMap->_srs = getHorizSRSString(profile->getSRS());
tileMap->_vsrs = profile->getSRS()->getVertInitString();
tileMap->_format.setWidth( tile_width );
tileMap->_format.setHeight( tile_height );
profile->getNumTiles( 0, tileMap->_numTilesWide, tileMap->_numTilesHigh );
// format can be a mime-type or an extension:
std::string::size_type p = format.find('/');
if ( p == std::string::npos )
{
tileMap->_format.setExtension(format);
tileMap->_format.setMimeType( Registry::instance()->getMimeTypeForExtension(format) );
}
else
{
tileMap->_format.setMimeType(format);
tileMap->_format.setExtension( Registry::instance()->getExtensionForMimeType(format) );
}
//Add the data extents
tileMap->getDataExtents().insert(tileMap->getDataExtents().end(), dataExtents.begin(), dataExtents.end());
// If we have some data extents specified then make a nicer bounds than the
if (!tileMap->getDataExtents().empty())
{
// Get the union of all the extents
GeoExtent e(tileMap->getDataExtents()[0]);
for (unsigned int i = 1; i < tileMap->getDataExtents().size(); i++)
{
e.expandToInclude(tileMap->getDataExtents()[i]);
}
// Convert the bounds to the output profile
GeoExtent bounds = e.transform(profile->getSRS());
tileMap->setExtents(bounds.xMin(), bounds.yMin(), bounds.xMax(), bounds.yMax());
}
tileMap->generateTileSets();
tileMap->computeMinMaxLevel();
return tileMap;
}
示例3: TileMap
TileMap*
TileMap::create(const std::string& url,
const Profile* profile,
const std::string& format,
int tile_width,
int tile_height)
{
const GeoExtent& ex = profile->getExtent();
TileMap* tileMap = new TileMap();
tileMap->setProfileType(profile->getProfileType());
tileMap->setExtents(ex.xMin(), ex.yMin(), ex.xMax(), ex.yMax());
tileMap->setOrigin(ex.xMin(), ex.yMin());
tileMap->_filename = url;
tileMap->_srs = getHorizSRSString(profile->getSRS());
tileMap->_vsrs = profile->getSRS()->getVertInitString();
tileMap->_format.setWidth( tile_width );
tileMap->_format.setHeight( tile_height );
profile->getNumTiles( 0, tileMap->_numTilesWide, tileMap->_numTilesHigh );
// format can be a mime-type or an extension:
std::string::size_type p = format.find('/');
if ( p == std::string::npos )
{
tileMap->_format.setExtension(format);
tileMap->_format.setMimeType( Registry::instance()->getMimeTypeForExtension(format) );
}
else
{
tileMap->_format.setMimeType(format);
tileMap->_format.setExtension( Registry::instance()->getExtensionForMimeType(format) );
}
tileMap->generateTileSets();
tileMap->computeMinMaxLevel();
return tileMap;
}
示例4: 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);
//.........这里部分代码省略.........