@@ -58,6 +58,7 @@ void QgsGeometryGapCheck::collectErrors( const QMap<QString, QgsFeaturePool *> &
58
58
}
59
59
60
60
std::unique_ptr< QgsGeometryEngine > geomEngine = QgsGeometryCheckerUtils::createGeomEngine ( nullptr , mContext ->tolerance );
61
+ geomEngine->prepareGeometry ();
61
62
62
63
// Create union of geometry
63
64
QString errMsg;
@@ -70,6 +71,7 @@ void QgsGeometryGapCheck::collectErrors( const QMap<QString, QgsFeaturePool *> &
70
71
71
72
// Get envelope of union
72
73
geomEngine = QgsGeometryCheckerUtils::createGeomEngine ( unionGeom.get (), mContext ->tolerance );
74
+ geomEngine->prepareGeometry ();
73
75
std::unique_ptr<QgsAbstractGeometry> envelope ( geomEngine->envelope ( &errMsg ) );
74
76
if ( !envelope )
75
77
{
@@ -79,11 +81,13 @@ void QgsGeometryGapCheck::collectErrors( const QMap<QString, QgsFeaturePool *> &
79
81
80
82
// Buffer envelope
81
83
geomEngine = QgsGeometryCheckerUtils::createGeomEngine ( envelope.get (), mContext ->tolerance );
84
+ geomEngine->prepareGeometry ();
82
85
QgsAbstractGeometry *bufEnvelope = geomEngine->buffer ( 2 , 0 , GEOSBUF_CAP_SQUARE, GEOSBUF_JOIN_MITRE, 4 . ); // #spellok //#spellok
83
86
envelope.reset ( bufEnvelope );
84
87
85
88
// Compute difference between envelope and union to obtain gap polygons
86
89
geomEngine = QgsGeometryCheckerUtils::createGeomEngine ( envelope.get (), mContext ->tolerance );
90
+ geomEngine->prepareGeometry ();
87
91
std::unique_ptr<QgsAbstractGeometry> diffGeom ( geomEngine->difference ( unionGeom.get (), &errMsg ) );
88
92
if ( !diffGeom )
89
93
{
0 commit comments