本文整理汇总了C++中CPLGetXMLNode函数的典型用法代码示例。如果您正苦于以下问题:C++ CPLGetXMLNode函数的具体用法?C++ CPLGetXMLNode怎么用?C++ CPLGetXMLNode使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了CPLGetXMLNode函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: importXMLAuthority
static void importXMLAuthority(CPLXMLNode *psSrcXML,
OGRSpatialReference *poSRS,
const char *pszSourceKey,
const char *pszTargetKey)
{
CPLXMLNode *psIDNode = CPLGetXMLNode(psSrcXML, pszSourceKey);
CPLXMLNode *psNameNode = CPLGetXMLNode(psIDNode, "name");
CPLXMLNode *psCodeSpace = CPLGetXMLNode(psNameNode, "codeSpace");
const char *pszAuthority, *pszCode;
char *pszURN;
int nCode = 0;
if (psIDNode == NULL || psNameNode == NULL || psCodeSpace == NULL)
return;
pszURN = CPLStrdup(CPLGetXMLValue(psCodeSpace, "", ""));
if (!parseURN(pszURN, NULL, &pszAuthority, &pszCode))
{
CPLFree(pszURN);
return;
}
if (strlen(pszCode) == 0)
pszCode = (char*) CPLGetXMLValue(psNameNode, "", "");
if (pszCode != NULL)
nCode = atoi(pszCode);
if (nCode != 0)
poSRS->SetAuthority(pszTargetKey, pszAuthority, nCode);
CPLFree(pszURN);
}
开发者ID:hyyh619,项目名称:OpenSceneGraph-3.4.0,代码行数:34,代码来源:ogr_srs_xml.cpp
示例2: WCTSIsTransformable
void WCTSIsTransformable( CPLXMLNode *psOperation )
{
OGRSpatialReference *poSrcCRS, *poDstCRS;
CPLXMLNode *psSrcXMLCRS, *psDstXMLCRS;
/* -------------------------------------------------------------------- */
/* Translate the source CRS. */
/* -------------------------------------------------------------------- */
psSrcXMLCRS = CPLGetXMLNode( psOperation, "SourceCRS" );
if( psSrcXMLCRS == NULL )
WCTSEmitServiceException( "Unable to identify SourceCRS.CoordinateReferenceSystem" );
poSrcCRS = WCTSImportCoordinateReferenceSystem( psSrcXMLCRS );
/* -------------------------------------------------------------------- */
/* Translate the destination CRS. */
/* -------------------------------------------------------------------- */
psDstXMLCRS = CPLGetXMLNode( psOperation, "TargetCRS" );
if( psDstXMLCRS == NULL )
WCTSEmitServiceException( "Unable to identify DestinationCRS.CoordinateReferenceSystem" );
poDstCRS = WCTSImportCoordinateReferenceSystem( psDstXMLCRS );
/* -------------------------------------------------------------------- */
/* Create a transformation object between the coordinate */
/* systems as an added step of verification that they are */
/* supported. */
/* -------------------------------------------------------------------- */
OGRCoordinateTransformation *poCT;
const char *pszResult;
poCT = OGRCreateCoordinateTransformation( poSrcCRS, poDstCRS );
if( poCT == NULL )
pszResult = "false";
else
{
delete poCT;
pszResult = "true";
}
delete poSrcCRS;
delete poDstCRS;
/* -------------------------------------------------------------------- */
/* Return the answer. */
/* -------------------------------------------------------------------- */
printf( "Content-type: text/xml%c%c", 10, 10 );
printf( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" );
printf( "<TransformableResponse xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"http://www.deegree.org/xml/schemas/wcts/transformableResponse.xsd\" transformable=\"%s\"/>\n",
pszResult );
exit( 0 );
}
开发者ID:469447793,项目名称:World-Wind-Java,代码行数:57,代码来源:ogrwcts.cpp
示例3: getProjectionParm
static double getProjectionParm(CPLXMLNode *psRootNode,
int nParameterCode,
const char* /*pszMeasureType */,
double dfDefault)
{
CPLXMLNode *psUsesParameter;
for (psUsesParameter = psRootNode->psChild;
psUsesParameter != NULL;
psUsesParameter = psUsesParameter->psNext)
{
if (psUsesParameter->eType != CXT_Element)
continue;
if (!EQUAL(psUsesParameter->pszValue, "usesParameterValue")
&& !EQUAL(psUsesParameter->pszValue, "usesValue"))
continue;
if (getEPSGObjectCodeValue(CPLGetXMLNode(psUsesParameter,
"valueOfParameter"),
"parameter", 0) == nParameterCode)
{
const char *pszValue = CPLGetXMLValue(psUsesParameter, "value",
NULL);
if (pszValue != NULL)
return atof(pszValue);
else
return dfDefault;
}
}
return dfDefault;
}
开发者ID:hyyh619,项目名称:OpenSceneGraph-3.4.0,代码行数:35,代码来源:ogr_srs_xml.cpp
示例4: getNormalizedValue
static double getNormalizedValue(CPLXMLNode *psNode, const char *pszPath,
const char* /*pszMeasure*/,
double dfDefault)
{
CPLXMLNode *psTargetNode;
CPLXMLNode *psValueNode;
if (pszPath == NULL || strlen(pszPath) == 0)
psTargetNode = psNode;
else
psTargetNode = CPLGetXMLNode(psNode, pszPath);
if (psTargetNode == NULL)
return dfDefault;
for (psValueNode = psTargetNode->psChild;
psValueNode != NULL && psValueNode->eType != CXT_Text;
psValueNode = psValueNode->psNext)
{}
if (psValueNode == NULL)
return dfDefault;
// Add normalization later.
return atof(psValueNode->pszValue);
}
开发者ID:hyyh619,项目名称:OpenSceneGraph-3.4.0,代码行数:28,代码来源:ogr_srs_xml.cpp
示例5: CPLParseXMLFile
CPLErr GDALWMSRasterBand::ReportWMSException(const char *file_name) {
CPLErr ret = CE_None;
int reported_errors_count = 0;
CPLXMLNode *orig_root = CPLParseXMLFile(file_name);
CPLXMLNode *root = orig_root;
if (root != NULL) {
root = CPLGetXMLNode(root, "=ServiceExceptionReport");
}
if (root != NULL) {
CPLXMLNode *n = CPLGetXMLNode(root, "ServiceException");
while (n != NULL) {
const char *exception = CPLGetXMLValue(n, "=ServiceException", "");
const char *exception_code = CPLGetXMLValue(n, "=ServiceException.code", "");
if (exception[0] != '\0') {
if (exception_code[0] != '\0') {
CPLError(CE_Failure, CPLE_AppDefined, "GDALWMS: The server returned exception code '%s': %s", exception_code, exception);
++reported_errors_count;
} else {
CPLError(CE_Failure, CPLE_AppDefined, "GDALWMS: The server returned exception: %s", exception);
++reported_errors_count;
}
} else if (exception_code[0] != '\0') {
CPLError(CE_Failure, CPLE_AppDefined, "GDALWMS: The server returned exception code '%s'.", exception_code);
++reported_errors_count;
}
n = n->psNext;
if (n != NULL) {
n = CPLGetXMLNode(n, "=ServiceException");
}
}
} else {
ret = CE_Failure;
}
if (orig_root != NULL) {
CPLDestroyXMLNode(orig_root);
}
if (reported_errors_count == 0) {
ret = CE_Failure;
}
return ret;
}
开发者ID:469447793,项目名称:World-Wind-Java,代码行数:45,代码来源:rasterband.cpp
示例6: CPLGetXMLNode
void *GDALDeserializeGCPTransformer( CPLXMLNode *psTree )
{
GDAL_GCP *pasGCPList = 0;
int nGCPCount = 0;
void *pResult = NULL;
int nReqOrder = 0;
int bReversed = 0;
int bRefine = 0;
int nMinimumGcps = 0;
double dfTolerance = 0.0;
/* -------------------------------------------------------------------- */
/* Check for GCPs. */
/* -------------------------------------------------------------------- */
CPLXMLNode *psGCPList = CPLGetXMLNode( psTree, "GCPList" );
if( psGCPList != NULL )
{
GDALDeserializeGCPListFromXML( psGCPList,
&pasGCPList,
&nGCPCount,
NULL );
}
/* -------------------------------------------------------------------- */
/* Get other flags. */
/* -------------------------------------------------------------------- */
nReqOrder = atoi(CPLGetXMLValue(psTree,"Order","3"));
bReversed = atoi(CPLGetXMLValue(psTree,"Reversed","0"));
bRefine = atoi(CPLGetXMLValue(psTree,"Refine","0"));
nMinimumGcps = atoi(CPLGetXMLValue(psTree,"MinimumGcps","6"));
dfTolerance = CPLAtof(CPLGetXMLValue(psTree,"Tolerance","1.0"));
/* -------------------------------------------------------------------- */
/* Generate transformation. */
/* -------------------------------------------------------------------- */
if(bRefine)
{
pResult = GDALCreateGCPRefineTransformer( nGCPCount, pasGCPList, nReqOrder,
bReversed, dfTolerance, nMinimumGcps );
}
else
{
pResult = GDALCreateGCPTransformer( nGCPCount, pasGCPList, nReqOrder,
bReversed );
}
/* -------------------------------------------------------------------- */
/* Cleanup GCP copy. */
/* -------------------------------------------------------------------- */
GDALDeinitGCPs( nGCPCount, pasGCPList );
CPLFree( pasGCPList );
return pResult;
}
开发者ID:koordinates,项目名称:gdal,代码行数:56,代码来源:gdal_crs.c
示例7: CPLParseXMLString
// ************************************************************
// ParseServerException()
// ************************************************************
void BaseProvider::ParseServerException(CString s)
{
CPLXMLNode* node = CPLParseXMLString(s);
if (node)
{
while (node) {
CPLXMLNode* nodeException = CPLGetXMLNode(node, "ServiceException");
if (nodeException) {
CString msg = CPLGetXMLValue(nodeException, "", "");
CallbackHelper::ErrorMsg(Debug::Format("WMS Server exception (%s): %s", Name, msg));
}
node = node->psNext;
}
CPLDestroyXMLNode(node);
}
}
开发者ID:liuzhumei,项目名称:MapWinGIS,代码行数:20,代码来源:BaseProvider.cpp
示例8: CPLGetXMLNode
CPLXMLNode *OGRFMECacheIndex::FindMatch( const char *pszDriver,
const char *pszDataset,
IFMEStringArray &oUserDirectives )
{
CPLXMLNode *psCDS;
if( psTree == NULL )
return NULL;
for( psCDS = psTree->psChild; psCDS != NULL; psCDS = psCDS->psNext )
{
if( !EQUAL(pszDriver,CPLGetXMLValue(psCDS,"Driver","")) )
continue;
if( !EQUAL(pszDataset,CPLGetXMLValue(psCDS,"DSName","")) )
continue;
CPLXMLNode *psDirective;
int bMatch = TRUE;
int iDir;
psDirective = CPLGetXMLNode( psCDS, "UserDirectives.Directive" );
for( iDir = 0;
iDir < (int)oUserDirectives.entries() && bMatch;
iDir++ )
{
if( psDirective == NULL || psDirective->psChild == NULL )
bMatch = FALSE;
else if( !EQUAL(psDirective->psChild->pszValue,
oUserDirectives(iDir)) )
bMatch = FALSE;
else
psDirective = psDirective->psNext;
}
if( iDir < (int) oUserDirectives.entries() || !bMatch
|| (psDirective != NULL && psDirective->psNext != NULL) )
continue;
return psCDS;
}
return NULL;
}
开发者ID:0004c,项目名称:node-gdal,代码行数:45,代码来源:ogrfmecacheindex.cpp
示例9: CPLGetXMLNode
void *GDALDeserializeTPSTransformer( CPLXMLNode *psTree )
{
GDAL_GCP *pasGCPList = 0;
int nGCPCount = 0;
void *pResult;
int bReversed;
/* -------------------------------------------------------------------- */
/* Check for GCPs. */
/* -------------------------------------------------------------------- */
CPLXMLNode *psGCPList = CPLGetXMLNode( psTree, "GCPList" );
if( psGCPList != NULL )
{
GDALDeserializeGCPListFromXML( psGCPList,
&pasGCPList,
&nGCPCount,
NULL );
}
/* -------------------------------------------------------------------- */
/* Get other flags. */
/* -------------------------------------------------------------------- */
bReversed = atoi(CPLGetXMLValue(psTree,"Reversed","0"));
/* -------------------------------------------------------------------- */
/* Generate transformation. */
/* -------------------------------------------------------------------- */
pResult = GDALCreateTPSTransformer( nGCPCount, pasGCPList, bReversed );
/* -------------------------------------------------------------------- */
/* Cleanup GCP copy. */
/* -------------------------------------------------------------------- */
GDALDeinitGCPs( nGCPCount, pasGCPList );
CPLFree( pasGCPList );
return pResult;
}
开发者ID:GeospatialDaryl,项目名称:VS2013__00_GDAL_111_x64,代码行数:39,代码来源:gdal_tps.cpp
示例10: CPLFindFile
bool GMLRegistry::Parse()
{
if( osRegistryPath.empty() )
{
const char *pszFilename = CPLFindFile("gdal", "gml_registry.xml");
if( pszFilename )
osRegistryPath = pszFilename;
}
if( osRegistryPath.empty() )
return false;
CPLXMLNode *psRootNode = CPLParseXMLFile(osRegistryPath);
if( psRootNode == NULL )
return false;
CPLXMLNode *psRegistryNode = CPLGetXMLNode(psRootNode, "=gml_registry");
if( psRegistryNode == NULL )
{
CPLDestroyXMLNode(psRootNode);
return false;
}
CPLXMLNode *psIter = psRegistryNode->psChild;
while( psIter != NULL )
{
if( psIter->eType == CXT_Element &&
strcmp(psIter->pszValue, "namespace") == 0 )
{
GMLRegistryNamespace oNameSpace;
if( oNameSpace.Parse(osRegistryPath, psIter) )
{
aoNamespaces.push_back(oNameSpace);
}
}
psIter = psIter->psNext;
}
CPLDestroyXMLNode(psRootNode);
return true;
}
开发者ID:Mavrx-inc,项目名称:gdal,代码行数:36,代码来源:gmlregistry.cpp
示例11: CPLStrdup
CPLErr VRTDataset::XMLInit( CPLXMLNode *psTree, const char *pszVRTPath )
{
if( pszVRTPath != NULL )
this->pszVRTPath = CPLStrdup(pszVRTPath);
/* -------------------------------------------------------------------- */
/* Check for an SRS node. */
/* -------------------------------------------------------------------- */
if( strlen(CPLGetXMLValue(psTree, "SRS", "")) > 0 )
{
OGRSpatialReference oSRS;
CPLFree( pszProjection );
pszProjection = NULL;
if( oSRS.SetFromUserInput( CPLGetXMLValue(psTree, "SRS", "") )
== OGRERR_NONE )
oSRS.exportToWkt( &pszProjection );
}
/* -------------------------------------------------------------------- */
/* Check for a GeoTransform node. */
/* -------------------------------------------------------------------- */
if( strlen(CPLGetXMLValue(psTree, "GeoTransform", "")) > 0 )
{
const char *pszGT = CPLGetXMLValue(psTree, "GeoTransform", "");
char **papszTokens;
papszTokens = CSLTokenizeStringComplex( pszGT, ",", FALSE, FALSE );
if( CSLCount(papszTokens) != 6 )
{
CPLError( CE_Warning, CPLE_AppDefined,
"GeoTransform node does not have expected six values.");
}
else
{
for( int iTA = 0; iTA < 6; iTA++ )
adfGeoTransform[iTA] = atof(papszTokens[iTA]);
bGeoTransformSet = TRUE;
}
CSLDestroy( papszTokens );
}
/* -------------------------------------------------------------------- */
/* Check for GCPs. */
/* -------------------------------------------------------------------- */
CPLXMLNode *psGCPList = CPLGetXMLNode( psTree, "GCPList" );
if( psGCPList != NULL )
{
CPLXMLNode *psXMLGCP;
OGRSpatialReference oSRS;
const char *pszRawProj = CPLGetXMLValue(psGCPList, "Projection", "");
CPLFree( pszGCPProjection );
if( strlen(pszRawProj) > 0
&& oSRS.SetFromUserInput( pszRawProj ) == OGRERR_NONE )
oSRS.exportToWkt( &pszGCPProjection );
else
pszGCPProjection = CPLStrdup("");
// Count GCPs.
int nGCPMax = 0;
for( psXMLGCP = psGCPList->psChild; psXMLGCP != NULL;
psXMLGCP = psXMLGCP->psNext )
nGCPMax++;
pasGCPList = (GDAL_GCP *) CPLCalloc(sizeof(GDAL_GCP),nGCPMax);
for( psXMLGCP = psGCPList->psChild; psXMLGCP != NULL;
psXMLGCP = psXMLGCP->psNext )
{
GDAL_GCP *psGCP = pasGCPList + nGCPCount;
if( !EQUAL(psXMLGCP->pszValue,"GCP") ||
psXMLGCP->eType != CXT_Element )
continue;
GDALInitGCPs( 1, psGCP );
CPLFree( psGCP->pszId );
psGCP->pszId = CPLStrdup(CPLGetXMLValue(psXMLGCP,"Id",""));
CPLFree( psGCP->pszInfo );
psGCP->pszInfo = CPLStrdup(CPLGetXMLValue(psXMLGCP,"Info",""));
psGCP->dfGCPPixel = atof(CPLGetXMLValue(psXMLGCP,"Pixel","0.0"));
psGCP->dfGCPLine = atof(CPLGetXMLValue(psXMLGCP,"Line","0.0"));
psGCP->dfGCPX = atof(CPLGetXMLValue(psXMLGCP,"X","0.0"));
psGCP->dfGCPY = atof(CPLGetXMLValue(psXMLGCP,"Y","0.0"));
psGCP->dfGCPZ = atof(CPLGetXMLValue(psXMLGCP,"Z","0.0"));
nGCPCount++;
}
}
//.........这里部分代码省略.........
开发者ID:Joe-xXx,项目名称:gdal,代码行数:101,代码来源:vrtdataset.cpp
示例12: GMLParseFeatureType
static
GMLFeatureClass* GMLParseFeatureType(CPLXMLNode *psSchemaNode,
const char* pszName,
CPLXMLNode *psComplexType)
{
/* -------------------------------------------------------------------- */
/* Grab the sequence of extensions greatgrandchild. */
/* -------------------------------------------------------------------- */
CPLXMLNode *psAttrSeq =
CPLGetXMLNode( psComplexType,
"complexContent.extension.sequence" );
if( psAttrSeq == NULL )
{
return NULL;
}
/* -------------------------------------------------------------------- */
/* We are pretty sure this going to be a valid Feature class */
/* now, so create it. */
/* -------------------------------------------------------------------- */
GMLFeatureClass *poClass = new GMLFeatureClass( pszName );
/* -------------------------------------------------------------------- */
/* Loop over each of the attribute elements being defined for */
/* this feature class. */
/* -------------------------------------------------------------------- */
CPLXMLNode *psAttrDef;
int nAttributeIndex = 0;
int bGotUnrecognizedType = FALSE;
for( psAttrDef = psAttrSeq->psChild;
psAttrDef != NULL;
psAttrDef = psAttrDef->psNext )
{
if( strcmp(psAttrDef->pszValue,"group") == 0 )
{
/* Too complex schema for us. Aborts parsing */
delete poClass;
return NULL;
}
if( !EQUAL(psAttrDef->pszValue,"element") )
continue;
/* MapServer WFS writes element type as an attribute of element */
/* not as a simpleType definition */
const char* pszType = CPLGetXMLValue( psAttrDef, "type", NULL );
const char* pszElementName = CPLGetXMLValue( psAttrDef, "name", NULL );
if (pszType != NULL)
{
const char* pszStrippedNSType = StripNS(pszType);
int nWidth = 0, nPrecision = 0;
GMLPropertyType gmlType = GMLPT_Untyped;
if (EQUAL(pszStrippedNSType, "string") ||
EQUAL(pszStrippedNSType, "Character"))
gmlType = GMLPT_String;
/* TODO: Would be nice to have a proper date type */
else if (EQUAL(pszStrippedNSType, "date") ||
EQUAL(pszStrippedNSType, "dateTime"))
gmlType = GMLPT_String;
else if (EQUAL(pszStrippedNSType, "real") ||
EQUAL(pszStrippedNSType, "double") ||
EQUAL(pszStrippedNSType, "float") ||
EQUAL(pszStrippedNSType, "decimal"))
gmlType = GMLPT_Real;
else if (EQUAL(pszStrippedNSType, "short") ||
EQUAL(pszStrippedNSType, "int") ||
EQUAL(pszStrippedNSType, "integer") ||
EQUAL(pszStrippedNSType, "long"))
gmlType = GMLPT_Integer;
else if (strncmp(pszType, "gml:", 4) == 0)
{
const AssocNameType* psIter = apsPropertyTypes;
while(psIter->pszName)
{
if (strncmp(pszType + 4, psIter->pszName, strlen(psIter->pszName)) == 0)
{
if (poClass->GetGeometryAttributeIndex() != -1)
{
CPLDebug("GML", "Geometry field already found ! Ignoring the following ones");
}
else
{
poClass->SetGeometryElement(pszElementName);
poClass->SetGeometryType(psIter->eType);
poClass->SetGeometryAttributeIndex( nAttributeIndex );
nAttributeIndex ++;
}
break;
}
psIter ++;
}
//.........这里部分代码省略.........
开发者ID:imincik,项目名称:pkg-gdal,代码行数:101,代码来源:parsexsd.cpp
示例13: GMLParseXSD
int GMLParseXSD( const char *pszFile,
std::vector<GMLFeatureClass*> & aosClasses)
{
if( pszFile == NULL )
return FALSE;
/* -------------------------------------------------------------------- */
/* Load the raw XML file. */
/* -------------------------------------------------------------------- */
CPLXMLNode *psXSDTree = CPLParseXMLFile( pszFile );
if( psXSDTree == NULL )
return FALSE;
/* -------------------------------------------------------------------- */
/* Strip off any namespace qualifiers. */
/* -------------------------------------------------------------------- */
CPLStripXMLNamespace( psXSDTree, NULL, TRUE );
/* -------------------------------------------------------------------- */
/* Find <schema> root element. */
/* -------------------------------------------------------------------- */
CPLXMLNode *psSchemaNode = CPLGetXMLNode( psXSDTree, "=schema" );
if( psSchemaNode == NULL )
{
CPLDestroyXMLNode( psXSDTree );
return FALSE;
}
/* ==================================================================== */
/* Process each feature class definition. */
/* ==================================================================== */
CPLXMLNode *psThis;
for( psThis = psSchemaNode->psChild;
psThis != NULL; psThis = psThis->psNext )
{
/* -------------------------------------------------------------------- */
/* Check for <xs:element> node. */
/* -------------------------------------------------------------------- */
if( psThis->eType != CXT_Element
|| !EQUAL(psThis->pszValue,"element") )
continue;
/* -------------------------------------------------------------------- */
/* Check the substitution group. */
/* -------------------------------------------------------------------- */
const char *pszSubGroup =
StripNS(CPLGetXMLValue(psThis,"substitutionGroup",""));
// Old OGR produced elements for the feature collection.
if( EQUAL(pszSubGroup, "_FeatureCollection") )
continue;
if( !EQUAL(pszSubGroup, "_Feature") &&
!EQUAL(pszSubGroup, "AbstractFeature") /* AbstractFeature used by GML 3.2 */ )
{
continue;
}
/* -------------------------------------------------------------------- */
/* Get name */
/* -------------------------------------------------------------------- */
const char *pszName;
pszName = CPLGetXMLValue( psThis, "name", NULL );
if( pszName == NULL )
{
continue;
}
/* -------------------------------------------------------------------- */
/* Get type and verify relationship with name. */
/* -------------------------------------------------------------------- */
const char *pszType;
pszType = CPLGetXMLValue( psThis, "type", NULL );
if (pszType == NULL)
{
CPLXMLNode *psComplexType = CPLGetXMLNode( psThis, "complexType" );
if (psComplexType)
{
GMLFeatureClass* poClass =
GMLParseFeatureType(psSchemaNode, pszName, psComplexType);
if (poClass)
aosClasses.push_back(poClass);
}
continue;
}
if( strstr( pszType, ":" ) != NULL )
pszType = strstr( pszType, ":" ) + 1;
if( EQUAL(pszType, pszName) )
{
/* A few WFS servers return a type name which is the element name */
/* without any _Type or Type suffix */
/* e.g. : http://apollo.erdas.com/erdas-apollo/vector/Cherokee?SERVICE=WFS&VERSION=1.0.0&REQUEST=DescribeFeatureType&TYPENAME=iwfs:Air */
}
else if( !EQUALN(pszType,pszName,strlen(pszName))
|| !(EQUAL(pszType+strlen(pszName),"_Type") ||
//.........这里部分代码省略.........
开发者ID:imincik,项目名称:pkg-gdal,代码行数:101,代码来源:parsexsd.cpp
示例14: CPLError
GDALDataset *TSXDataset::Open( GDALOpenInfo *poOpenInfo ) {
/* -------------------------------------------------------------------- */
/* Is this a TerraSAR-X product file? */
/* -------------------------------------------------------------------- */
if (!TSXDataset::Identify( poOpenInfo ))
{
return NULL; /* nope */
}
/* -------------------------------------------------------------------- */
/* Confirm the requested access is supported. */
/* -------------------------------------------------------------------- */
if( poOpenInfo->eAccess == GA_Update )
{
CPLError( CE_Failure, CPLE_NotSupported,
"The TSX driver does not support update access to existing"
" datasets.\n" );
return NULL;
}
CPLString osFilename;
if( poOpenInfo->bIsDirectory )
{
osFilename =
CPLFormCIFilename( poOpenInfo->pszFilename,
CPLGetFilename( poOpenInfo->pszFilename ),
"xml" );
}
else
osFilename = poOpenInfo->pszFilename;
/* Ingest the XML */
CPLXMLNode *psData = CPLParseXMLFile( osFilename );
if (psData == NULL)
return NULL;
/* find the product components */
CPLXMLNode *psComponents
= CPLGetXMLNode( psData, "=level1Product.productComponents" );
if (psComponents == NULL) {
CPLError( CE_Failure, CPLE_OpenFailed,
"Unable to find <productComponents> tag in file.\n" );
CPLDestroyXMLNode(psData);
return NULL;
}
/* find the product info tag */
CPLXMLNode *psProductInfo
= CPLGetXMLNode( psData, "=level1Product.productInfo" );
if (psProductInfo == NULL) {
CPLError( CE_Failure, CPLE_OpenFailed,
"Unable to find <productInfo> tag in file.\n" );
CPLDestroyXMLNode(psData);
return NULL;
}
/* -------------------------------------------------------------------- */
/* Create the dataset. */
/* -------------------------------------------------------------------- */
TSXDataset *poDS = new TSXDataset();
/* -------------------------------------------------------------------- */
/* Read in product info. */
/* -------------------------------------------------------------------- */
poDS->SetMetadataItem( "SCENE_CENTRE_TIME", CPLGetXMLValue( psProductInfo,
"sceneInfo.sceneCenterCoord.azimuthTimeUTC", "unknown" ) );
poDS->SetMetadataItem( "OPERATIONAL_MODE", CPLGetXMLValue( psProductInfo,
"generationInfo.groundOperationsType", "unknown" ) );
poDS->SetMetadataItem( "ORBIT_CYCLE", CPLGetXMLValue( psProductInfo,
"missionInfo.orbitCycle", "unknown" ) );
poDS->SetMetadataItem( "ABSOLUTE_ORBIT", CPLGetXMLValue( psProductInfo,
"missionInfo.absOrbit", "unknown" ) );
poDS->SetMetadataItem( "ORBIT_DIRECTION", CPLGetXMLValue( psProductInfo,
"missionInfo.orbitDirection", "unknown" ) );
poDS->SetMetadataItem( "IMAGING_MODE", CPLGetXMLValue( psProductInfo,
"acquisitionInfo.imagingMode", "unknown" ) );
poDS->SetMetadataItem( "PRODUCT_VARIANT", CPLGetXMLValue( psProductInfo,
"productVariantInfo.productVariant", "unknown" ) );
char *pszDataType = CPLStrdup( CPLGetXMLValue( psProductInfo,
"imageDataInfo.imageDataType", "unknown" ) );
poDS->SetMetadataItem( "IMAGE_TYPE", pszDataType );
/* Get raster information */
int nRows = atoi( CPLGetXMLValue( psProductInfo,
"imageDataInfo.imageRaster.numberOfRows", "" ) );
int nCols = atoi( CPLGetXMLValue( psProductInfo,
"imageDataInfo.imageRaster.numberOfColumns", "" ) );
poDS->nRasterXSize = nCols;
poDS->nRasterYSize = nRows;
poDS->SetMetadataItem( "ROW_SPACING", CPLGetXMLValue( psProductInfo,
"imageDataInfo.imageRaster.rowSpacing", "unknown" ) );
poDS->SetMetadataItem( "COL_SPACING", CPLGetXMLValue( psProductInfo,
"imageDataInfo.imageRaster.columnSpacing", "unknown" ) );
poDS->SetMetadataItem( "COL_SPACING_UNITS", CPLGetXMLValue( psProductInfo,
"imageDataInfo.imageRaster.columnSpacing.units", "unknown" ) );
//.........这里部分代码省略.........
开发者ID:Wedjaa,项目名称:node-gdal,代码行数:101,代码来源:tsxdataset.cpp
示例15: CPLGetXMLNode
void *GDALDeserializeGCPTransformer( CPLXMLNode *psTree )
{
GDAL_GCP *pasGCPList = 0;
int nGCPCount = 0;
void *pResult;
int nReqOrder;
int bReversed;
int bRefine;
int nMinimumGcps;
double dfTolerance;
/* -------------------------------------------------------------------- */
/* Check for GCPs. */
/* -------------------------------------------------------------------- */
CPLXMLNode *psGCPList = CPLGetXMLNode( psTree, "GCPList" );
if( psGCPList != NULL )
{
int nGCPMax = 0;
CPLXMLNode *psXMLGCP;
// Count GCPs.
for( psXMLGCP = psGCPList->psChild; psXMLGCP != NULL;
psXMLGCP = psXMLGCP->psNext )
nGCPMax++;
pasGCPList = (GDAL_GCP *) CPLCalloc(sizeof(GDAL_GCP),nGCPMax);
for( psXMLGCP = psGCPList->psChild; psXMLGCP != NULL;
psXMLGCP = psXMLGCP->psNext )
{
GDAL_GCP *psGCP = pasGCPList + nGCPCount;
if( !EQUAL(psXMLGCP->pszValue,"GCP") ||
psXMLGCP->eType != CXT_Element )
continue;
GDALInitGCPs( 1, psGCP );
CPLFree( psGCP->pszId );
psGCP->pszId = CPLStrdup(CPLGetXMLValue(psXMLGCP,"Id",""));
CPLFree( psGCP->pszInfo );
psGCP->pszInfo = CPLStrdup(CPLGetXMLValue(psXMLGCP,"Info",""));
psGCP->dfGCPPixel = atof(CPLGetXMLValue(psXMLGCP,"Pixel","0.0"));
psGCP->dfGCPLine = atof(CPLGetXMLValue(psXMLGCP,"Line","0.0"));
psGCP->dfGCPX = atof(CPLGetXMLValue(psXMLGCP,"X","0.0"));
psGCP->dfGCPY = atof(CPLGetXMLValue(psXMLGCP,"Y","0.0"));
psGCP->dfGCPZ = atof(CPLGetXMLValue(psXMLGCP,"Z","0.0"));
nGCPCount++;
}
}
/* -------------------------------------------------------------------- */
/* Get other flags. */
/* -------------------------------------------------------------------- */
nReqOrder = atoi(CPLGetXMLValue(psTree,"Order","3"));
bReversed = atoi(CPLGetXMLValue(psTree,"Reversed","0"));
bRefine = atoi(CPLGetXMLValue(psTree,"Refine","0"));
nMinimumGcps = atoi(CPLGetXMLValue(psTree,"MinimumGcps","6"));
dfTolerance = atof(CPLGetXMLValue(psTree,"Tolerance","1.0"));
/* -------------------------------------------------------------------- */
/* Generate transformation. */
/* -------------------------------------------------------------------- */
if(bRefine)
{
pResult = GDALCreateGCPRefineTransformer( nGCPCount, pasGCPList, nReqOrder,
bReversed, dfTolerance, nMinimumGcps );
}
else
{
pResult = GDALCreateGCPTransformer( nGCPCount, pasGCPList, nReqOrder,
bReversed );
}
/* -------------------------------------------------------------------- */
/* Cleanup GCP copy. */
/* -------------------------------------------------------------------- */
GDALDeinitGCPs( nGCPCount, pasGCPList );
CPLFree( pasGCPList );
return pResult;
}
开发者ID:AsherBond,项目名称:MondocosmOS,代码行数:87,代码来源:gdal_crs.c
示例16: CPLError
GDALDataset *TSXDataset::Open( GDALOpenInfo *poOpenInfo ) {
/* -------------------------------------------------------------------- */
/* Is this a TerraSAR-X product file? */
/* -------------------------------------------------------------------- */
if (!TSXDataset::Identify( poOpenInfo )) {
return NULL; /* nope */
}
/* -------------------------------------------------------------------- */
/* Confirm the requested access is supported. */
/* -------------------------------------------------------------------- */
if( poOpenInfo->eAccess == GA_Update )
{
CPLError( CE_Failure, CPLE_NotSupported,
"The TSX driver does not support update access to existing"
" datasets.\n" );
return NULL;
}
/* Ingest the XML */
CPLXMLNode *psData, *psComponents, *psProductInfo;
psData = CPLParseXMLFile( poOpenInfo->pszFilename );
/* find the product components */
psComponents = CPLGetXMLNode( psData, "=level1Product.productComponents" );
if (psComponents == NULL) {
CPLError( CE_Failure, CPLE_OpenFailed,
"Unable to find <productComponents> tag in file.\n" );
return NULL;
}
/* find the product info tag */
psProductInfo = CPLGetXMLNode( psData, "=level1Product.productInfo" );
if (psComponents == NULL) {
CPLError( CE_Failure, CPLE_OpenFailed,
"Unable to find <productInfo> tag in file.\n" );
return NULL;
}
/* -------------------------------------------------------------------- */
/* Create the dataset. */
/* -------------------------------------------------------------------- */
TSXDataset *poDS = new TSXDataset();
poDS->fp = poOpenInfo->fp;
poOpenInfo->fp = NULL;
/* -------------------------------------------------------------------- */
/* Read in product info. */
/* -------------------------------------------------------------------- */
poDS->SetMetadataItem( "SCENE_CENTRE_TIME", CPLGetXMLValue( psProductInfo,
"sceneInfo.sceneCenterCoord.azimuthTimeUTC", "unknown" ) );
poDS->SetMetadataItem( "OPERATIONAL_MODE", CPLGetXMLValue( psProductInfo,
"generationInfo.groundOperationsType", "unknown" ) );
poDS->SetMetadataItem( "ORBIT_CYCLE", CPLGetXMLValue( psProductInfo,
"missionInfo.orbitCycle", "unknown" ) );
poDS->SetMetadataItem( "ABSOLUTE_ORBIT", CPLGetXMLValue( psProductInfo,
"missionInfo.absOrbit", "unknown" ) );
poDS->SetMetadataItem( "ORBIT_DIRECTION", CPLGetXMLValue( psProductInfo,
"missionInfo.orbitDirection", "unknown" ) );
poDS->SetMetadataItem( "IMAGING_MODE", CPLGetXMLValue( psProductInfo,
"acquisitionInfo.imagingMode", "unknown" ) );
poDS->SetMetadataItem( "PRODUCT_VARIANT", CPLGetXMLValue( psProductInfo,
"productVariantInfo.productVariant", "unknown" ) );
char *pszDataType = strdup( CPLGetXMLValue( psProductInfo,
"imageDataInfo.imageDataType", "unknown" ) );
poDS->SetMetadataItem( "IMAGE_TYPE", pszDataType );
/* Get raster information */
int nRows = atoi( CPLGetXMLValue( psProductInfo,
"imageDataInfo.imageRaster.numberOfRows", "" ) );
int nCols = atoi( CPLGetXMLValue( psProductInfo,
"imageDataInfo.imageRaster.numberOfColumns", "" ) );
poDS->nRasterXSize = nCols;
poDS->nRasterYSize = nRows;
poDS->SetMetadataItem( "ROW_SPACING", CPLGetXMLValue( psProductInfo,
"imageDataInfo.imageRaster.rowSpacing", "unknown" ) );
poDS->SetMetadataItem( "COL_SPACING", CPLGetXMLValue( psProductInfo,
"imageDataInfo.imageRaster.columnSpacing", "unknown" ) );
poDS->SetMetadataItem( "COL_SPACING_UNITS", CPLGetXMLValue( psProductInfo,
"imageDataInfo.imageRaster.columnSpacing.units", "unknown" ) );
/* Get equivalent number of looks */
poDS->SetMetadataItem( "AZIMUTH_LOOKS", CPLGetXMLValue( psProductInfo,
"imageDataInfo.imageRaster.azimuthLooks", "unknown" ) );
poDS->SetMetadataItem( "RANGE_LOOKS", CPLGetXMLValue( psProductInfo,
"imageDataInfo.imageRaster.rangeLooks", "unknown" ) );
const char *pszProductVariant;
pszProductVariant = CPLGetXMLValue( psProductInfo,
"productVariantInfo.productVariant", "unknown" );
poDS->SetMetadataItem( "PRODUCT_VARIANT", pszProductVariant );
/* Determine what product variant this is */
if (EQUALN(pszProductVariant,"SSC",3))
poDS->nProduct = eSSC;
//.........这里部分代码省略.........
开发者ID:brunosimoes,项目名称:WorldWind,代码行数:101,代码来源:tsxdataset.cpp
-
六六分期app的软件客服如何联系?不知道吗?加qq群【895510560】即可!标题:六六分期
阅读:19155|2023-10-27
-
今天小编告诉大家如何处理win10系统火狐flash插件总是崩溃的问题,可能很多用户都不知
阅读:9980|2022-11-06
-
今天小编告诉大家如何对win10系统删除桌面回收站图标进行设置,可能很多用户都不知道
阅读:8320|2022-11-06
-
今天小编告诉大家如何对win10系统电脑设置节能降温的设置方法,想必大家都遇到过需要
阅读:8690|2022-11-06
-
我们在使用xp系统的过程中,经常需要对xp系统无线网络安装向导设置进行设置,可能很多
阅读:8632|2022-11-06
-
今天小编告诉大家如何处理win7系统玩cf老是与主机连接不稳定的问题,可能很多用户都不
阅读:9648|2022-11-06
-
电脑对日常生活的重要性小编就不多说了,可是一旦碰到win7系统设置cf烟雾头的问题,很
阅读:8615|2022-11-06
-
我们在日常使用电脑的时候,有的小伙伴们可能在打开应用的时候会遇见提示应用程序无法
阅读:7994|2022-11-06
-
今天小编告诉大家如何对win7系统打开vcf文件进行设置,可能很多用户都不知道怎么对win
阅读:8647|2022-11-06
-
今天小编告诉大家如何对win10系统s4开启USB调试模式进行设置,可能很多用户都不知道怎
阅读:7530|2022-11-06
|
请发表评论