Hi, I am a newer to OGR and I want to create a polygon feature, however it failed. The code are pasted below code:
const char *pszDriverName = "ESRI Shapefile"; OGRSFDriver *poDriver; OGRRegisterAll(); poDriver = OGRSFDriverRegistrar::GetRegistrar()->GetDriverByName(pszDriverName ); if( poDriver == NULL ) { printf( "%s driver not available.\n", pszDriverName ); exit( 1 ); } OGRDataSource *poDS; poDS = poDriver->CreateDataSource( "Polygon.shp", NULL ); if( poDS == NULL ) { printf( "Creation of output file failed.\n" ); exit( 1 ); } OGRLayer *poLayer; poLayer = poDS->CreateLayer( "polygon", NULL, wkbPoint, NULL ); if( poLayer == NULL ) { printf( "Layer creation failed.\n" ); exit( 1 ); } OGRFieldDefn oField( "Name", OFTString ); oField.SetWidth(32); if( poLayer->CreateField( &oField ) != OGRERR_NONE ) { printf( "Creating Name field failed.\n" ); exit( 1 ); } double x, y; char szName[33] = {"shishi"}; x = 100; y = 100; OGRFeature *poFeature; poFeature = OGRFeature::CreateFeature( poLayer->GetLayerDefn() ); poFeature->SetField( "Name", szName ); OGRPolygon myPoligon; OGRLinearRing MyRing; MyRing.addPoint(x,y); MyRing.addPoint(100,50); MyRing.addPoint(50,50); MyRing.addPoint(50,100); myPoligon.addRing(&MyRing); poFeature->SetGeometry( &myPoligon ); if( poLayer->CreateFeature( poFeature ) != OGRERR_NONE ) { printf( "Failed to create feature in shapefile.\n" ); exit( 1 ); } OGRFeature::DestroyFeature( poFeature ); OGRDataSource::DestroyDataSource( poDS ); I set a breakpoint at poLayer->CreateFeature( poFeature ). It shows that the creation failed. But I don't know why. Many thanks!! -- View this message in context: http://osgeo-org.1803224.n2.nabble.com/problems-with-creating-polygon-tp6577482p6577482.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