Beispiel #1
0
OGRFeature *OGRILI1Layer::GetNextFeature()
{
    if (!bGeomsJoined) JoinGeomLayers();

    while(nFeatureIdx < nFeatures)
    {
        OGRFeature *poFeature = GetNextFeatureRef();
        if (poFeature)
            return poFeature->Clone();
    }
    return nullptr;
}
Beispiel #2
0
OGRFeature *OGRILI1Layer::GetFeatureRef( long nFID )

{
    OGRFeature *poFeature;

    ResetReading();
    while( (poFeature = GetNextFeatureRef()) != NULL )
    {
        if( poFeature->GetFID() == nFID )
            return poFeature;
    }

    return NULL;
}
Beispiel #3
0
OGRFeature *OGRILI1Layer::GetFeatureRef( const char *fid )

{
    ResetReading();

    OGRFeature *poFeature = nullptr;
    while( (poFeature = GetNextFeatureRef()) != nullptr )
    {
        if( !strcmp( poFeature->GetFieldAsString(0), fid ) )
            return poFeature;
    }

    return nullptr;
}
Beispiel #4
0
OGRFeature *OGRILI1Layer::GetFeatureRef( GIntBig nFID )

{
    ResetReading();

    OGRFeature *poFeature = nullptr;
    while( (poFeature = GetNextFeatureRef()) != nullptr )
    {
        if( poFeature->GetFID() == nFID )
            return poFeature;
    }

    return nullptr;
}
Beispiel #5
0
OGRFeature *OGRILI1Layer::GetNextFeature()
{
    OGRFeature *poFeature;

    if (poSurfacePolyLayer != 0) JoinSurfaceLayer();
    if (poAreaLineLayer != 0) PolygonizeAreaLayer();

    while(nFeatureIdx < nFeatures)
    {
        poFeature = GetNextFeatureRef();
        if (poFeature)
            return poFeature->Clone();
    }
    return NULL;
}
Beispiel #6
0
void OGRILI1Layer::JoinSurfaceLayer()
{
    if (poSurfacePolyLayer == 0) return;

    CPLDebug( "OGR_ILI", "Joining surface layer %s with geometries", GetLayerDefn()->GetName());
    GetLayerDefn()->SetGeomType(poSurfacePolyLayer->GetLayerDefn()->GetGeomType());
    ResetReading();
    while (OGRFeature *feature = GetNextFeatureRef())
    {
        OGRFeature *polyfeature = poSurfacePolyLayer->GetFeatureRef(feature->GetFID());
        if (polyfeature) {
            feature->SetGeometry(polyfeature->GetGeometryRef());
        }
    }

    ResetReading();
    poSurfacePolyLayer = 0;
}