本文整理汇总了C++中ossimRefPtr::getValue方法的典型用法代码示例。如果您正苦于以下问题:C++ ossimRefPtr::getValue方法的具体用法?C++ ossimRefPtr::getValue怎么用?C++ ossimRefPtr::getValue使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ossimRefPtr
的用法示例。
在下文中一共展示了ossimRefPtr::getValue方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getImageGeometry
bool ossimGmlSupportData::getImageGeometry( ossimKeywordlist& geomKwl ) const
{
bool success = true;
if ( m_xmlDocument.valid() )
{
vector< ossimRefPtr<ossimXmlNode> > xml_nodes;
bool gotSensorImage = false;
bool gotRectifiedImage = false;
ossim_uint32 pcsCodeGrid = 32767; // only applies to rectified
// Check the GMLJP2CoverageCollection attributes for the default namespace.
ossimString defaultNamespaceStr( "" );
ossimString xpath_root = "/gmljp2:GMLJP2CoverageCollection";
xml_nodes.clear();
m_xmlDocument->findNodes( xpath_root, xml_nodes );
if ( xml_nodes.size() == 0 )
{
// check if the default namespace is gmljp2
xpath_root = "/GMLJP2CoverageCollection";
m_xmlDocument->findNodes( xpath_root, xml_nodes );
}
if ( xml_nodes.size() >= 1 )
{
const ossimString defaultNamespaceIdentifierStr( "xmlns" );
ossimString defaultNamespacePrependStr = defaultNamespaceIdentifierStr + ":";
const ossimRefPtr<ossimXmlAttribute> defaultNamespaceAttribute = xml_nodes[0]->findAttribute( defaultNamespaceIdentifierStr );
ossimString defaultNamespaceSettingStr = defaultNamespaceAttribute->getValue();
// search for the attribute value in the other attributes
const ossimXmlNode::AttributeListType& attributeList = xml_nodes[0]->getAttributes();
size_t nAttributes = attributeList.size();
for ( size_t i=0; i<nAttributes; ++i )
{
const ossimRefPtr<ossimXmlAttribute> attribute = attributeList[i];
const ossimString& attribute_name = attribute->getName();
const ossimString& attribute_value = attribute->getValue();
if ( attribute_name != defaultNamespaceIdentifierStr &&
attribute_value == defaultNamespaceSettingStr )
{
defaultNamespaceStr = attribute_name.after( defaultNamespacePrependStr );
defaultNamespaceStr += ":";
}
}
}
// Check for a sensor image
ossimString xpath0 = "/gmljp2:GMLJP2CoverageCollection/gmljp2:featureMember/gmljp2:GMLJP2ReferenceableGridCoverage/gml:domainSet/gmlcov:ReferenceableGridBySensorModel";
xpath0 = xpath0.replaceAllThatMatch( defaultNamespaceStr.c_str(), "" );
xml_nodes.clear();
m_xmlDocument->findNodes( xpath0, xml_nodes );
if ( xml_nodes.size() >= 1 )
{
// we've got a sensor model image
gotSensorImage = true;
}
else
{
const ossimString srsNameStr( "srsName" );
ossimString pcsCodeDefinitionStr( "http://www.opengis.net/def/crs/EPSG/0/" );
xpath0 = "/gmljp2:GMLJP2CoverageCollection/gmljp2:featureMember/gmljp2:GMLJP2RectifiedGridCoverage/gml:domainSet/gml:RectifiedGrid";
xpath0 = xpath0.replaceAllThatMatch( defaultNamespaceStr.c_str(), "" );
xml_nodes.clear();
m_xmlDocument->findNodes( xpath0, xml_nodes );
if ( xml_nodes.size() >= 1 )
{
// we've got a rectified image
gotRectifiedImage = true;
const ossimRefPtr<ossimXmlAttribute> hrefAttribute = xml_nodes[0]->findAttribute( srsNameStr );
const ossimString& originSrsName = hrefAttribute->getValue();
ossimString pcsCodeGridStr = originSrsName.after( pcsCodeDefinitionStr.string() );
pcsCodeGrid = pcsCodeGridStr.toUInt32();
if ( pcsCodeGrid != 32767 )
{
//---
// The ossimEpsgProjectionFactory will not pick up the origin latitude if code is
// 4326 (geographic) so we use the projection name; else, the origin_latitude will
// always be 0. This is so the gsd comes out correct for scale.
//---
if ( pcsCodeGrid != 4326 ) // map projection
{
// Add the pcs code.
geomKwl.add( ossimKeywordNames::PCS_CODE_KW,
pcsCodeGridStr.c_str() );
}
else // geographic
{
geomKwl.add( ossimKeywordNames::TYPE_KW,
ossimString( "ossimEquDistCylProjection" ) );
}
}
}
}
/* Number of lines & samples, for either sensor or rectified imagery */
//.........这里部分代码省略.........
示例2: getBandInformation
ossimRefPtr<ossimNBandLutDataObject> ossimNitfImageHeader::createLut(
ossim_uint32 bandIdx)const
{
ossimRefPtr<ossimNBandLutDataObject> result;
if(bandIdx < (ossim_uint32)getNumberOfBands())
{
const ossimRefPtr<ossimNitfImageBand> band = getBandInformation(bandIdx);
if(band.valid())
{
ossim_uint32 bands = band->getNumberOfLuts();
if(bands > 0)
{
if(band->getLut(0).valid())
{
ossim_uint32 entries = band->getLut(0)->getNumberOfEntries();
result = new ossimNBandLutDataObject();
result->create(entries, band->getNumberOfLuts());
ossim_uint32 bIdx;
ossim_uint32 entryIdx;
for(bIdx = 0; bIdx < bands; ++bIdx)
{
const ossimRefPtr<ossimNitfImageLut> lut = band->getLut(bIdx);
if(lut.valid())
{
for(entryIdx = 0; entryIdx < entries; ++entryIdx)
{
(*result)[entryIdx][bIdx] = (ossimNBandLutDataObject::LUT_ENTRY_TYPE)(lut->getValue(entryIdx));
}
}
}
}
}
}
}
return result;
}