本文整理汇总了C++中OGR_SRSNode::GetValue方法的典型用法代码示例。如果您正苦于以下问题:C++ OGR_SRSNode::GetValue方法的具体用法?C++ OGR_SRSNode::GetValue怎么用?C++ OGR_SRSNode::GetValue使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OGR_SRSNode
的用法示例。
在下文中一共展示了OGR_SRSNode::GetValue方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ValidateVertDatum
/**
* \brief Validate the current VERT_DATUM's arguments.
*
* @return OGRERR_NONE if the VERT_DATUM's arguments validate, an error code
* otherwise
*/
OGRErr OGRSpatialReference::ValidateVertDatum(OGR_SRSNode *poRoot)
{
if ( !EQUAL(poRoot->GetValue(), "VERT_DATUM") )
return OGRERR_NONE;
if (poRoot->GetChildCount() < 2 )
{
CPLDebug( "OGRSpatialReference::Validate",
"Invalid number of children : %d", poRoot->GetChildCount() );
return OGRERR_CORRUPT_DATA;
}
if (atoi(poRoot->GetChild(1)->GetValue()) == 0)
{
CPLDebug( "OGRSpatialReference::Validate",
"Invalid value for datum type (%s) : must be a number\n",
poRoot->GetChild(1)->GetValue());
return OGRERR_CORRUPT_DATA;
}
OGR_SRSNode *poNode;
int i;
for( i = 2; i < poRoot->GetChildCount(); i++ )
{
poNode = poRoot->GetChild(i);
if( EQUAL(poNode->GetValue(),"AUTHORITY") )
{
OGRErr eErr = ValidateAuthority(poNode);
if (eErr != OGRERR_NONE)
return eErr;
}
else if( EQUAL(poNode->GetValue(),"EXTENSION") )
{
// We do not try to control the sub-organization of
// EXTENSION nodes.
}
else
{
CPLDebug( "OGRSpatialReference::Validate",
"Unexpected child for VERT_DATUM `%s'.\n",
poNode->GetValue() );
return OGRERR_CORRUPT_DATA;
}
}
return OGRERR_NONE;
}
示例2: Validate
OGRErr OGRSpatialReference::Validate(OGR_SRSNode *poRoot)
{
if( !EQUAL(poRoot->GetValue(),"GEOGCS")
&& !EQUAL(poRoot->GetValue(),"PROJCS")
&& !EQUAL(poRoot->GetValue(),"LOCAL_CS")
&& !EQUAL(poRoot->GetValue(),"GEOCCS")
&& !EQUAL(poRoot->GetValue(),"VERT_CS")
&& !EQUAL(poRoot->GetValue(),"COMPD_CS"))
{
CPLDebug( "OGRSpatialReference::Validate",
"Unrecognised root node `%s'\n",
poRoot->GetValue() );
return OGRERR_CORRUPT_DATA;
}
/* -------------------------------------------------------------------- */
/* For a COMPD_CS, validate subparameters and head & tail cs */
/* -------------------------------------------------------------------- */
if( EQUAL(poRoot->GetValue(),"COMPD_CS") )
{
OGR_SRSNode *poNode;
int i;
for( i = 1; i < poRoot->GetChildCount(); i++ )
{
poNode = poRoot->GetChild(i);
if( EQUAL(poNode->GetValue(),"GEOGCS") ||
EQUAL(poNode->GetValue(),"PROJCS") ||
EQUAL(poNode->GetValue(),"LOCAL_CS") ||
EQUAL(poNode->GetValue(),"GEOCCS") ||
EQUAL(poNode->GetValue(),"VERT_CS") ||
EQUAL(poNode->GetValue(),"COMPD_CS") )
{
OGRErr eErr = Validate(poNode);
if (eErr != OGRERR_NONE)
return eErr;
}
else if( EQUAL(poNode->GetValue(),"AUTHORITY") )
{
OGRErr eErr = ValidateAuthority(poNode);
if (eErr != OGRERR_NONE)
return eErr;
}
else
{
CPLDebug( "OGRSpatialReference::Validate",
"Unexpected child for COMPD_CS `%s'.\n",
poNode->GetValue() );
return OGRERR_CORRUPT_DATA;
}
}
return OGRERR_NONE;
}
/* -------------------------------------------------------------------- */
/* Validate VERT_CS */
/* -------------------------------------------------------------------- */
if( EQUAL(poRoot->GetValue(),"VERT_CS") )
{
OGR_SRSNode *poNode;
int i;
int bGotVertDatum = FALSE;
int bGotUnit = FALSE;
int nCountAxis = 0;
for( i = 1; i < poRoot->GetChildCount(); i++ )
{
poNode = poRoot->GetChild(i);
if( EQUAL(poNode->GetValue(),"VERT_DATUM") )
{
OGRErr eErr = ValidateVertDatum(poNode);
if (eErr != OGRERR_NONE)
return eErr;
bGotVertDatum = TRUE;
}
else if( EQUAL(poNode->GetValue(),"UNIT") )
{
OGRErr eErr = ValidateUnit(poNode);
if (eErr != OGRERR_NONE)
return eErr;
bGotUnit = TRUE;
}
else if( EQUAL(poNode->GetValue(),"AXIS") )
{
OGRErr eErr = ValidateAxis(poNode);
if (eErr != OGRERR_NONE)
return eErr;
nCountAxis ++;
}
else if( EQUAL(poNode->GetValue(),"AUTHORITY") )
{
OGRErr eErr = ValidateAuthority(poNode);
if (eErr != OGRERR_NONE)
return eErr;
}
else
//.........这里部分代码省略.........
示例3: ValidateProjection
/**
* \brief Validate the current PROJECTION's arguments.
*
* @return OGRERR_NONE if the PROJECTION's arguments validate, an error code
* otherwise
*/
OGRErr OGRSpatialReference::ValidateProjection(OGR_SRSNode *poRoot)
{
OGR_SRSNode *poPROJCS = poRoot->GetNode( "PROJCS" );
if( poPROJCS == NULL )
return OGRERR_NONE;
if( poPROJCS->GetNode( "PROJECTION" ) == NULL )
{
CPLDebug( "OGRSpatialReference::Validate",
"PROJCS does not have PROJECTION subnode." );
return OGRERR_CORRUPT_DATA;
}
/* -------------------------------------------------------------------- */
/* Find the matching group in the proj and parms table. */
/* -------------------------------------------------------------------- */
const char *pszProjection;
int iOffset;
pszProjection = poPROJCS->GetNode("PROJECTION")->GetChild(0)->GetValue();
for( iOffset = 0;
papszProjWithParms[iOffset] != NULL
&& !EQUAL(papszProjWithParms[iOffset],pszProjection); )
{
while( papszProjWithParms[iOffset] != NULL )
iOffset++;
iOffset++;
}
if( papszProjWithParms[iOffset] == NULL )
return OGRERR_UNSUPPORTED_SRS;
iOffset++;
/* -------------------------------------------------------------------- */
/* Check all parameters, and verify they are in the permitted */
/* list. */
/* -------------------------------------------------------------------- */
int iNode;
for( iNode = 0; iNode < poPROJCS->GetChildCount(); iNode++ )
{
OGR_SRSNode *poParm = poPROJCS->GetChild(iNode);
int i;
const char *pszParmName;
if( !EQUAL(poParm->GetValue(),"PARAMETER") )
continue;
pszParmName = poParm->GetChild(0)->GetValue();
for( i = iOffset; papszProjWithParms[i] != NULL; i++ )
{
if( EQUAL(papszProjWithParms[i],pszParmName) )
break;
}
/* This parameter is not an exact match, is it an alias? */
if( papszProjWithParms[i] == NULL )
{
for( i = iOffset; papszProjWithParms[i] != NULL; i++ )
{
if( IsAliasFor(papszProjWithParms[i],pszParmName) )
break;
}
if( papszProjWithParms[i] == NULL )
{
CPLDebug( "OGRSpatialReference::Validate",
"PARAMETER %s for PROJECTION %s is not permitted.",
pszParmName, pszProjection );
return OGRERR_CORRUPT_DATA;
}
else
{
CPLDebug( "OGRSpatialReference::Validate",
"PARAMETER %s for PROJECTION %s is an alias for %s.",
pszParmName, pszProjection,
papszProjWithParms[i] );
return OGRERR_CORRUPT_DATA;
}
}
}
return OGRERR_NONE;
}
示例4: toOssimKwl
bool rspfOgcWktTranslator::toOssimKwl( const rspfString& wktString,
rspfKeywordlist &kwl,
const char *prefix)const
{
static const char MODULE[] = "rspfOgcWktTranslator::toOssimKwl";
if(traceDebug())
{
rspfNotify(rspfNotifyLevel_DEBUG) << MODULE << " entered...\n";
}
const char* wkt = wktString.c_str();
OGRSpatialReferenceH hSRS = NULL;
rspfDpt falseEastingNorthing;
hSRS = OSRNewSpatialReference(NULL);
if( OSRImportFromWkt( hSRS, (char **) &wkt ) != OGRERR_NONE )
{
OSRDestroySpatialReference( hSRS );
return false;
}
rspfString rspfProj = "";
const char* epsg_code = OSRGetAttrValue( hSRS, "AUTHORITY", 1 );
if(traceDebug())
{
rspfNotify(rspfNotifyLevel_DEBUG)
<< "epsg_code: " << (epsg_code?epsg_code:"null") << "\n";
}
const char* units = NULL;
OGR_SRSNode* node = ((OGRSpatialReference *)hSRS)->GetRoot();
int nbChild = node->GetChildCount();
for (int i = 0; i < nbChild; i++)
{
OGR_SRSNode* curChild = node->GetChild(i);
if (strcmp(curChild->GetValue(), "UNIT") == 0)
{
units = curChild->GetChild(0)->GetValue();
}
}
if(traceDebug())
{
rspfNotify(rspfNotifyLevel_DEBUG)
<< "units: " << (units?units:"null") << "\n";
}
rspfString rspf_units;
bool bGeog = OSRIsGeographic(hSRS);
if ( bGeog == false )
{
rspf_units = "meters";
if ( units != NULL )
{
rspfString s = units;
s.downcase();
if( ( s == rspfString("us survey foot") ) ||
( s == rspfString("u.s. foot") ) ||
( s == rspfString("foot_us") ) )
{
rspf_units = "us_survey_feet";
}
else if( s == rspfString("degree") )
{
rspf_units = "degrees";
}
else if( ( s == rspfString("meter") ) ||
( s == rspfString("metre") ) )
{
rspf_units = "meters";
}
}
}
else
{
rspf_units = "degrees";
}
if(traceDebug())
{
rspfNotify(rspfNotifyLevel_DEBUG)
<< "rspf_units: " << rspf_units << "\n";
}
if (epsg_code)
{
rspfString epsg_spec ("EPSG:");
epsg_spec += rspfString::toString(epsg_code);
rspfProjection* proj = rspfEpsgProjectionFactory::instance()->createProjection(epsg_spec);
if (proj)
rspfProj = proj->getClassName();
delete proj;
}
if(rspfProj == "")
{
const char* pszProjection = OSRGetAttrValue( hSRS, "PROJECTION", 0 );
if(pszProjection)
{
rspfProj = wktToOssimProjection(pszProjection);
}
else
//.........这里部分代码省略.........