Tim Keitt wrote:
I made my first foray into OGR today and want to be sure I understand
the following code from the tutorial.

In particular, I am wondering why the feature is created and destroyed
in each loop. Could one instead create a single feature object and
simply update its x and y values repeatedly? Clearly the feature
created in the layer does not reference poFeature, because it is
destroyed, right?  Can the OGRFeature::CreateFeature and
OGRFeature::DestroyFeature calls be moved outside the loop?

Tim,

Yes, the same feature could be reused and the create/destroy moved
outside the call.  That is the call to OGRFeature::CreateFeature().
The call to OGRLayer::CreateFeature() must of course be within the loop.

Best regards,

  while( !feof(stdin)
           && fscanf( stdin, "%lf,%lf,%32s", &x, &y, szName ) == 3 )
    {
        OGRFeature *poFeature;

        poFeature = OGRFeature::CreateFeature( poLayer->GetLayerDefn() );
        poFeature->SetField( "Name", szName );

        OGRPoint pt;

        pt.setX( x );
        pt.setY( y );

        poFeature->SetGeometry( &pt );

        if( poLayer->CreateFeature( poFeature ) != OGRERR_NONE )
        {
           printf( "Failed to create feature in shapefile.\n" );
           exit( 1 );
        }

         OGRFeature::DestroyFeature( poFeature );
    }




--
---------------------------------------+--------------------------------------
I set the clouds in motion - turn up   | Frank Warmerdam, [email protected]
light and sound - activate the windows | http://pobox.com/~warmerdam
and watch the world go round - Rush    | Geospatial Programmer for Rent

_______________________________________________
gdal-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to