Hi Even, Thanks for your reply and for pointing out my memory leak.
I tried ogrinfo as you suggested and it seems to work fine. Also, I am able to output the number of features from my OGRLayer so I know that it is accessing the file ok...I think anyway. I have tried to use a debugger but don't seem to be getting anywhere with that. When I try and step into the ResetReading a few messages go by too fast to read then it stops at " Stopped: "signal-received" ". If I try to step over it I also does something similar. I am using the QtCreator IDE. I guess I need to find out if there is a way to read all the messages that are generated. Thanks again, Matt On Sat, Dec 19, 2009 at 4:06 PM, Even Rouault <[email protected]> wrote: > Matthew, > > I can't see why it would fail on ResetReading(). It should run just fine. > The only point I've seen is that your code has memory leaks. It leaks each > read OGRFeature and the OGRDataSource. See the full example on the tutorial > to correctly deallocate those objects. But that doesn't explain your issue. > > I think you'll have to use a debugger and step in to see what happens. > > Do OGR command line utilities work on your shapefile ? For example, ogrinfo > ? > > Best regards, > > Even > > Matthew Denno a écrit : >> >> Hi, >> >> I was wondering if someone could help me out. I have been working on >> a little piece of code here and seems to be stuck. The piece is very >> close to one of the examples on the website so I would think that it >> would be right...maybe I have missed something simple. Anyway below >> is the code. It seems like it hangs on "poLayer->ResetReading();". >> It successfully prints out the number of features then dies. >> >> Thanks, >> >> Matt >> >> CODE: >> >> int z_shape_to_delaunay(Delaunay &dt, >> QString myLayerPath, >> bool useAnalysisMask, >> QString analysisMaskPath) >> { >> qDebug("z_shape_to_delaunay"); >> >> OGRRegisterAll(); >> >> OGRDataSource *poDS; >> >> poDS = OGRSFDriverRegistrar::Open( myLayerPath, FALSE ); >> if( poDS == NULL ) >> { >> qDebug( "Shapefile failed to open" ); >> exit( 1 ); >> } >> >> OGRLayer *poLayer; >> >> poLayer = poDS->GetLayer( 0 ); >> >> qDebug() << "Number of Features: " << poLayer->GetFeatureCount(1); >> >> if (poLayer = NULL) >> { >> qDebug( "Layer ID was out of range" ); >> exit( 1 ); >> } >> >> OGRFeature *poFeature; >> >> poLayer->ResetReading(); >> >> qDebug("start loop"); >> >> while( (poFeature = poLayer->GetNextFeature()) != NULL ) >> { >> OGRGeometry *poGeometry; >> poGeometry = poFeature->GetGeometryRef(); >> >> qDebug("in loop"); >> >> if (!poGeometry) >> { >> continue; >> } >> >> if( poGeometry != NULL && poGeometry->getGeometryType() == >> wkbPoint25D ) >> { >> OGRPoint *poPoint = (OGRPoint *) poGeometry; >> Point pt = Point(poPoint->getX(), poPoint->getY(), >> poPoint->getZ()); >> dt.insert(pt); >> } >> else >> { >> qDebug( "no point geometry" ); >> } >> } >> >> } >> return (0); >> } >> _______________________________________________ >> gdal-dev mailing list >> [email protected] >> http://lists.osgeo.org/mailman/listinfo/gdal-dev >> >> >> >> > > > _______________________________________________ gdal-dev mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/gdal-dev
