本文整理汇总了C++中GetNextRawFeature函数的典型用法代码示例。如果您正苦于以下问题:C++ GetNextRawFeature函数的具体用法?C++ GetNextRawFeature怎么用?C++ GetNextRawFeature使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了GetNextRawFeature函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: while
OGRFeature *OGRIdrisiLayer::GetNextFeature()
{
OGRFeature *poFeature;
while(TRUE)
{
if (bEOF)
return NULL;
poFeature = GetNextRawFeature();
if (poFeature == NULL)
{
bEOF = TRUE;
return NULL;
}
if((m_poFilterGeom == NULL
|| FilterGeometry( poFeature->GetGeometryRef() ) )
&& (m_poAttrQuery == NULL
|| m_poAttrQuery->Evaluate( poFeature )) )
{
return poFeature;
}
else
delete poFeature;
}
}
示例2: while
OGRFeature *OGRHTFLayer::GetNextFeature()
{
OGRFeature *poFeature;
if (fpHTF == NULL || bEOF)
return NULL;
while(!bEOF)
{
poFeature = GetNextRawFeature();
if (poFeature == NULL)
return NULL;
if((m_poFilterGeom == NULL
|| FilterGeometry( poFeature->GetGeometryRef() ) )
&& (m_poAttrQuery == NULL
|| m_poAttrQuery->Evaluate( poFeature )) )
{
return poFeature;
}
else
delete poFeature;
}
return NULL;
}
示例3: GetLayerDefn
OGRFeature *OGRGFTLayer::GetNextFeature()
{
GetLayerDefn();
while( true )
{
if (nNextInSeq < nOffset ||
nNextInSeq >= nOffset + static_cast<int>(aosRows.size()))
{
if (bEOF)
return nullptr;
nOffset += static_cast<int>(aosRows.size());
if (!FetchNextRows())
return nullptr;
}
OGRFeature *poFeature = GetNextRawFeature();
if (poFeature == nullptr)
return nullptr;
if((m_poFilterGeom == nullptr
|| FilterGeometry( poFeature->GetGeometryRef() ) )
&& (m_poAttrQuery == nullptr
|| m_poAttrQuery->Evaluate( poFeature )) )
{
return poFeature;
}
else
delete poFeature;
}
}
示例4: ResetReading
OGRFeature *OGROGDILayer::GetNextFeature()
{
OGRFeature *poFeature;
/* Reset reading if we are not the current layer */
/* WARNING : this does not allow interleaved reading of layers */
if( m_poODS->GetCurrentLayer() != this )
{
m_poODS->SetCurrentLayer(this);
ResetReading();
}
while( true )
{
poFeature = GetNextRawFeature();
if( poFeature == NULL )
return NULL;
/* -------------------------------------------------------------------- */
/* Do we need to apply an attribute test? */
/* -------------------------------------------------------------------- */
if( (m_poAttrQuery != NULL
&& !m_poAttrQuery->Evaluate( poFeature ) )
|| (m_poFilterGeom != NULL
&& !FilterGeometry( poFeature->GetGeometryRef() ) ) )
{
m_nFilteredOutShapes ++;
delete poFeature;
}
else
return poFeature;
}
}
示例5: ClearStatement
OGRFeature *OGRWalkTableLayer::GetFeature( long nFeatureId )
{
if( pszFIDColumn == NULL )
return OGRWalkLayer::GetFeature( nFeatureId );
ClearStatement();
iNextShapeId = nFeatureId;
poStmt = new CPLODBCStatement( poDS->GetSession() );
poStmt->Append( "SELECT * FROM " );
poStmt->Append( poFeatureDefn->GetName() );
poStmt->Append( "Features" );
poStmt->Appendf( " WHERE %s = %ld", pszFIDColumn, nFeatureId );
if( !poStmt->ExecuteSQL() )
{
delete poStmt;
poStmt = NULL;
return NULL;
}
return GetNextRawFeature();
}
示例6: GetNextRawFeature
OGRFeature *OGRPGResultLayer::GetNextFeature()
{
OGRPGGeomFieldDefn* poGeomFieldDefn = NULL;
if( poFeatureDefn->GetGeomFieldCount() != 0 )
poGeomFieldDefn = poFeatureDefn->myGetGeomFieldDefn(m_iGeomFieldFilter);
for( ; TRUE; )
{
OGRFeature *poFeature;
poFeature = GetNextRawFeature();
if( poFeature == NULL )
return NULL;
if( (m_poFilterGeom == NULL
|| poGeomFieldDefn == NULL
|| poGeomFieldDefn->ePostgisType == GEOM_TYPE_GEOMETRY
|| poGeomFieldDefn->ePostgisType == GEOM_TYPE_GEOGRAPHY
|| FilterGeometry( poFeature->GetGeomFieldRef(m_iGeomFieldFilter) ) )
&& (m_poAttrQuery == NULL
|| m_poAttrQuery->Evaluate( poFeature )) )
return poFeature;
delete poFeature;
}
}
示例7: GetLayerDefn
OGRFeature *OGRGFTLayer::GetNextFeature()
{
OGRFeature *poFeature;
GetLayerDefn();
while(TRUE)
{
if (nNextInSeq < nOffset ||
nNextInSeq >= nOffset + (int)aosRows.size())
{
if (bEOF)
return NULL;
nOffset += aosRows.size();
if (!FetchNextRows())
return NULL;
}
poFeature = GetNextRawFeature();
if (poFeature == NULL)
return NULL;
if((m_poFilterGeom == NULL
|| FilterGeometry( poFeature->GetGeometryRef() ) )
&& (m_poAttrQuery == NULL
|| m_poAttrQuery->Evaluate( poFeature )) )
{
return poFeature;
}
else
delete poFeature;
}
}
示例8: while
OGRFeature *OGRGMELayer::GetNextFeature()
{
OGRFeature *poFeature = NULL;
while( TRUE )
{
poFeature = GetNextRawFeature();
if( poFeature == NULL )
break;
// incremeted in GetNextRawFeature()
// m_nFeaturesRead++;
if( (m_poFilterGeom == NULL
|| poFeature->GetGeometryRef() == NULL
|| FilterGeometry( poFeature->GetGeometryRef() ) )
&& (m_poAttrQuery == NULL
|| m_poAttrQuery->Evaluate( poFeature )) )
break;
delete poFeature;
}
return poFeature;
}
示例9: ClearQuery
OGRFeature *OGRIDBTableLayer::GetFeature( GIntBig nFeatureId )
{
if( pszFIDColumn == NULL )
return OGRIDBLayer::GetFeature( nFeatureId );
ClearQuery();
iNextShapeId = nFeatureId;
poCurr = new ITCursor( *poDS->GetConnection() );
// Create list of fields
CPLString osFields;
if ( poFeatureDefn->GetFieldIndex( pszFIDColumn ) == -1 )
osFields += pszFIDColumn;
if ( pszGeomColumn )
{
if ( ! osFields.empty() )
osFields += ",";
osFields += "st_asbinary(";
osFields += pszGeomColumn;
osFields += ") as ";
osFields += pszGeomColumn;
}
for( int i = 0; i < poFeatureDefn->GetFieldCount(); i++ )
{
if ( ! osFields.empty() )
osFields += ",";
osFields += poFeatureDefn->GetFieldDefn(i)->GetNameRef();
}
CPLString sql;
sql.Printf( "SELECT %s FROM %s WHERE %s = %d",
osFields.c_str(), poFeatureDefn->GetName(),
pszFIDColumn, nFeatureId );
CPLDebug( "OGR_IDB", "ExecuteSQL(%s)", sql.c_str() );
if( !poCurr->Prepare( sql.c_str() ) ||
!poCurr->Open(ITCursor::ReadOnly) )
{
delete poCurr;
poCurr = NULL;
return NULL;
}
return GetNextRawFeature();
}
示例10: GetNextRawFeature
OGRFeature *OGRPLScenesLayer::GetNextFeature()
{
if( !bFilterMustBeClientSideEvaluated )
return GetNextRawFeature();
while( true )
{
OGRFeature *poFeature = NULL;
poFeature = GetNextRawFeature();
if (poFeature == NULL)
return NULL;
if((m_poFilterGeom == NULL
|| FilterGeometry( poFeature->GetGeometryRef() ) )
&& (m_poAttrQuery == NULL
|| m_poAttrQuery->Evaluate( poFeature )) )
{
return poFeature;
}
else
delete poFeature;
}
}
示例11: SetSpatialFilter
OGRFeature *OGROGDILayer::GetFeature( GIntBig nFeatureId )
{
ecs_Result *psResult;
if (m_nTotalShapeCount != -1 && nFeatureId > m_nTotalShapeCount)
return NULL;
/* Unset spatial filter */
OGRGeometry* poOldFilterGeom = ( m_poFilterGeom != NULL ) ? m_poFilterGeom->clone() : NULL;
if( poOldFilterGeom != NULL )
SetSpatialFilter(NULL);
/* Reset reading if we are not the current layer */
/* WARNING : this does not allow interleaved reading of layers */
if( m_poODS->GetCurrentLayer() != this )
{
m_poODS->SetCurrentLayer(this);
ResetReading();
}
else if ( nFeatureId < m_iNextShapeId )
ResetReading();
while(m_iNextShapeId != nFeatureId)
{
psResult = cln_GetNextObject(m_nClientID);
if (ECSSUCCESS(psResult))
m_iNextShapeId++;
else
{
// We probably reached EOF... keep track of shape count.
m_nTotalShapeCount = m_iNextShapeId;
if( poOldFilterGeom != NULL )
{
SetSpatialFilter(poOldFilterGeom);
delete poOldFilterGeom;
}
return NULL;
}
}
// OK, we're ready to read the requested feature...
OGRFeature* poFeature = GetNextRawFeature();
if( poOldFilterGeom != NULL )
{
SetSpatialFilter(poOldFilterGeom);
delete poOldFilterGeom;
}
return poFeature;
}
示例12: while
OGRFeature *OGRWalkLayer::GetNextFeature()
{
while( true )
{
OGRFeature *poFeature = GetNextRawFeature();
if( poFeature == nullptr )
return nullptr;
if( (m_poFilterGeom == nullptr
|| FilterGeometry( poFeature->GetGeometryRef() ) )
&& (m_poAttrQuery == nullptr
|| m_poAttrQuery->Evaluate( poFeature )) )
return poFeature;
delete poFeature;
}
}
示例13: while
OGRFeature *OGRIngresLayer::GetNextFeature()
{
while( true )
{
OGRFeature *poFeature = GetNextRawFeature();
if( poFeature == NULL )
return NULL;
if( (m_poFilterGeom == NULL
|| FilterGeometry( poFeature->GetGeometryRef() ) )
&& (m_poAttrQuery == NULL
|| m_poAttrQuery->Evaluate( poFeature )) )
return poFeature;
delete poFeature;
}
}
示例14: GetNextRawFeature
OGRFeature *OGRMDBLayer::GetNextFeature()
{
for( ; TRUE; )
{
OGRFeature *poFeature;
poFeature = GetNextRawFeature();
if( poFeature == NULL )
return NULL;
if( (m_poFilterGeom == NULL
|| FilterGeometry( poFeature->GetGeometryRef() ) )
&& (m_poAttrQuery == NULL
|| m_poAttrQuery->Evaluate( poFeature )) )
return poFeature;
delete poFeature;
}
}
示例15: GetLayerDefn
OGRFeature *OGRXLSLayer::GetNextFeature()
{
GetLayerDefn();
while( true )
{
OGRFeature *poFeature = GetNextRawFeature();
if (poFeature == nullptr)
return nullptr;
if(/*(m_poFilterGeom == NULL
|| FilterGeometry( poFeature->GetGeometryRef() ) )
&& */ (m_poAttrQuery == nullptr
|| m_poAttrQuery->Evaluate( poFeature )) )
{
return poFeature;
}
else
delete poFeature;
}
}