osgEarth 2.1.1
|
Static Public Member Functions | |
static WMSCapabilities * | read (const std::string &location, const osgDB::ReaderWriter::Options *options) |
static WMSCapabilities * | read (std::istream &in) |
Private Member Functions | |
WMSCapabilitiesReader () | |
WMSCapabilitiesReader (const WMSCapabilitiesReader &cr) |
Definition at line 242 of file Capabilities.
osgEarth::WMSCapabilitiesReader::WMSCapabilitiesReader | ( | ) | [inline, private] |
Definition at line 248 of file Capabilities.
{}
osgEarth::WMSCapabilitiesReader::WMSCapabilitiesReader | ( | const WMSCapabilitiesReader & | cr | ) | [inline, private] |
Definition at line 249 of file Capabilities.
{}
WMSCapabilities * WMSCapabilitiesReader::read | ( | const std::string & | location, |
const osgDB::ReaderWriter::Options * | options | ||
) | [static] |
Definition at line 136 of file Capabilities.cpp.
{ WMSCapabilities *caps = NULL; if ( osgDB::containsServerAddress( location ) ) { HTTPResponse response = HTTPClient::get( location, options ); if ( response.isOK() && response.getNumParts() > 0 ) { caps = read( response.getPartStream( 0 ) ); } } else { if ((osgDB::fileExists(location)) && (osgDB::fileType(location) == osgDB::REGULAR_FILE)) { std::ifstream in( location.c_str() ); caps = read( in ); } } return caps; }
WMSCapabilities * WMSCapabilitiesReader::read | ( | std::istream & | in | ) | [static] |
Definition at line 253 of file Capabilities.cpp.
{ osg::ref_ptr<WMSCapabilities> capabilities = new WMSCapabilities; osg::ref_ptr<XmlDocument> doc = XmlDocument::load( in ); if (!doc.valid() || doc->getChildren().empty()) { OE_NOTICE << "Failed to load Capabilities " << std::endl; return 0; } //Get the Capabilities version osg::ref_ptr<XmlElement> e_root = static_cast<XmlElement*>(doc->getChildren()[0].get()); capabilities->setVersion( e_root->getAttr(ATTR_VERSION ) ); osg::ref_ptr<XmlElement> e_capability = e_root->getSubElement( ELEM_CAPABILITY ); if (!e_capability.valid()) { OE_NOTICE << "Could not find Capability element" << std::endl; return 0; } //Get the supported formats osg::ref_ptr<XmlElement> e_request = e_capability->getSubElement( ELEM_REQUEST ); if (e_request.valid()) { osg::ref_ptr<XmlElement> e_getMap = e_request->getSubElement( ELEM_GETMAP ); if ( e_getMap.valid() ) { //Read all the formats XmlNodeList formats = e_getMap->getSubElements( ELEM_FORMAT ); for( XmlNodeList::const_iterator i = formats.begin(); i != formats.end(); i++ ) { string format = trim(static_cast<XmlElement*>( i->get() )->getText()); capabilities->getFormats().push_back(format); } } } //Try to read the layers readLayers( e_capability.get(), 0, capabilities->getLayers()); return capabilities.release(); }