Hi everyone, I am using below codes to try convert geometry from a Dgn file to Shape file. But, I can't exit the FeatureReading loop:
void convert() { OGRRegisterAll(); OGRDataSource *poDS, *poSHPDS; const char *pszDriverName = "ESRI Shapefile"; OGRSFDriver *poDriver; poDriver = OGRSFDriverRegistrar::GetRegistrar()->GetDriverByName( pszDriverName ); // Open file DGN poDS = OGRSFDriverRegistrar::Open( sourceFile, FALSE ); if( poDS == NULL ) { cout << "Error opeing DGN file." << endl; return false; } // Create datasource for file shp poSHPDS = poDriver->CreateDataSource(destinationPath,NULL); if( poSHPDS == NULL ) { cout << "Error creating shape file." << endl; return false; } OGRLayer *poLayer, *poSHPLayer; // Get Layer from DGN file poLayer = poDS->GetLayer(0); // Create new Layer of SHP file poSHPLayer = poSHPDS->CreateLayer (shpFileName, NULL, wkbPolygon, NULL); if(poSHPLayer == NULL) { cout << "Error creating Layer of Shape File." << endl; return false; } OGRFeature *poFeature; poLayer->ResetReading(); *while( (poFeature = poLayer->GetNextFeature()) != NULL ) // Can't exit this loop* { OGRGeometry *poGeometry; poGeometry = poFeature->GetGeometryRef(); // if feature is a Polygon if( poGeometry != NULL && (wkbFlatten(poGeometry->getGeometryType()) == wkbPolygon ) ) { OGRFeature *poSHPFeature; //Create new Feature shape file poSHPFeature = OGRFeature::CreateFeature (poSHPLayer->GetLayerDefn()); poSHPFeature->SetGeometry (poGeometry); OGRPolygon *poPolygon = (OGRPolygon*) poSHPFeature->GetGeometryRef(); poLayer->SetSpatialFilter(poGeometry); poLayer->ResetReading (); } OGRFeature::DestroyFeature( poFeature ); } OGRDataSource::DestroyDataSource( poDS ); OGRDataSource::DestroyDataSource( poSHPDS ); return true; } Please find my attached dgn file. Dc19.dgn <http://osgeo-org.1560.x6.nabble.com/file/n5057267/Dc19.dgn> Are there anyone know why and how to fix it ? Thanks and regards, Tai -- View this message in context: http://osgeo-org.1560.x6.nabble.com/Can-t-convert-geometry-from-Dgn-file-to-Shape-file-tp5057267.html Sent from the GDAL - Dev mailing list archive at Nabble.com. _______________________________________________ gdal-dev mailing list gdal-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/gdal-dev