On Sat, 18 Apr 2020, Ahmet Temiz wrote:
Hi,
What am I doing wrong?
addRingDirectly is crashed
f( poGeometry != NULL && wkbFlatten(poGeometry->getGeometryType()) ==
wkbPolygon )
{
OGRPolygon *poPolygon = (OGRPolygon *) poGeometry;
// Box,
OGRLinearRing * poLinearRing {};
OGRPolygon *bbox {};
OGREnvelope oEnv1;
poPolygon->getEnvelope(&oEnv1);
poLinearRing = new OGRLinearRing({});
poLinearRing-> addPoint (oEnv1.MinX,oEnv1.MinY );
poLinearRing-> addPoint (oEnv1.MaxX,oEnv1.MinY );
poLinearRing-> addPoint (oEnv1.MaxX,oEnv1.MaxY );
poLinearRing-> addPoint (oEnv1.MinX,oEnv1.MaxY );
poLinearRing-> addPoint (oEnv1.MinX,oEnv1.MinY );
bbox= new OGRPolygon({});
bbox-> addRingDirectly(poLinearRing ); ** crash occur
Segmentation fault (core dumped)
The following works for me (I don't have {} in my new ...() ):
OGRLinearRing* linearRing = new OGRLinearRing ();
linearRing->setCoordinateDimension(2);
linearRing->setNumPoints(4);
linearRing->setPoint( 0, TL.lon, TL.lat );
linearRing->setPoint( 1, TR.lon, TR.lat );
linearRing->setPoint( 2, BR.lon, BR.lat );
linearRing->setPoint( 3, BL.lon, BL.lat );
OGRPolygon* poly = new OGRPolygon ();
poly->addRingDirectly(linearRing);
poly->closeRings();
poFeature->SetGeometryDirectly(poly);
_______________________________________________
gdal-dev mailing list
[email protected]
https://lists.osgeo.org/mailman/listinfo/gdal-dev