Skip to content
Snippets Groups Projects
Commit 0572dcd4 authored by Cédric Traizet's avatar Cédric Traizet
Browse files

Merge branch 'develop' into app_vector_regression

parents b5ff3162 0dde3bf4
No related branches found
No related tags found
3 merge requests!648Ci rcjob,!621Release 7.0 (master),!565Application VectorRegression
Pipeline #2456 passed
...@@ -292,7 +292,7 @@ private: ...@@ -292,7 +292,7 @@ private:
//Creation of a multipolygon where are stored the geometries to be merged //Creation of a multipolygon where are stored the geometries to be merged
OGRMultiPolygon geomToMerge; OGRMultiPolygon geomToMerge;
geomToMerge.addGeometry(firstFeature.GetGeometry()); AddValidGeometry(geomToMerge, firstFeature.GetGeometry());
bool merging = true; bool merging = true;
otb::ogr::Feature nextFeature(nullptr); otb::ogr::Feature nextFeature(nullptr);
bool haveMerged=false; bool haveMerged=false;
...@@ -309,7 +309,7 @@ private: ...@@ -309,7 +309,7 @@ private:
//Storing of the new geometry if labels are identical //Storing of the new geometry if labels are identical
if(merging) if(merging)
{ {
geomToMerge.addGeometry(nextFeature.GetGeometry()); AddValidGeometry(geomToMerge, nextFeature.GetGeometry());
layer.DeleteFeature(nextFeature.GetFID()); layer.DeleteFeature(nextFeature.GetFID());
haveMerged=true; haveMerged=true;
} }
...@@ -378,6 +378,18 @@ private: ...@@ -378,6 +378,18 @@ private:
otbAppLogINFO(<<"Elapsed time: "<<(double)(toc - tic) / CLOCKS_PER_SEC<<" seconds"); otbAppLogINFO(<<"Elapsed time: "<<(double)(toc - tic) / CLOCKS_PER_SEC<<" seconds");
} }
void AddValidGeometry(OGRMultiPolygon &multi, OGRGeometry const * g)
{
if (g->IsValid())
{
multi.addGeometry(g);
}
else
{
multi.addGeometryDirectly( g->Simplify(0.0) );
}
}
}; };
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment