@@ -26,7 +26,7 @@ void QgsGeometryGapCheck::collectErrors( QList<QgsGeometryCheckError *> &errors,
26
26
QVector<QgsAbstractGeometry *> geomList;
27
27
28
28
QMap<QString, QgsFeatureIds> featureIds = ids.isEmpty () ? allLayerFeatureIds () : ids;
29
- QgsGeometryCheckerUtils::LayerFeatures layerFeatures ( mContext ->featurePools , featureIds, mCompatibleGeometryTypes , nullptr , true );
29
+ const QgsGeometryCheckerUtils::LayerFeatures layerFeatures ( mContext ->featurePools , featureIds, mCompatibleGeometryTypes , nullptr , true );
30
30
for ( const QgsGeometryCheckerUtils::LayerFeature &layerFeature : layerFeatures )
31
31
{
32
32
geomList.append ( layerFeature.geometry ()->clone () );
@@ -96,7 +96,7 @@ void QgsGeometryGapCheck::collectErrors( QList<QgsGeometryCheckError *> &errors,
96
96
97
97
// Get neighboring polygons
98
98
QMap<QString, QgsFeatureIds> neighboringIds;
99
- QgsGeometryCheckerUtils::LayerFeatures layerFeatures ( mContext ->featurePools , featureIds.keys (), gapAreaBBox, mCompatibleGeometryTypes );
99
+ const QgsGeometryCheckerUtils::LayerFeatures layerFeatures ( mContext ->featurePools , featureIds.keys (), gapAreaBBox, mCompatibleGeometryTypes );
100
100
for ( const QgsGeometryCheckerUtils::LayerFeature &layerFeature : layerFeatures )
101
101
{
102
102
if ( QgsGeometryCheckerUtils::sharedEdgeLength ( gapGeom, layerFeature.geometry (), mContext ->reducedTolerance ) > 0 )
@@ -154,14 +154,17 @@ bool QgsGeometryGapCheck::mergeWithNeighbor( QgsGeometryGapCheckError *err, Chan
154
154
155
155
const QgsAbstractGeometry *errGeometry = QgsGeometryCheckerUtils::getGeomPart ( err->geometry (), 0 );
156
156
157
+ const auto layerIds = err->neighbors ().keys ();
157
158
// Search for touching neighboring geometries
158
- for ( const QString &layerId : err-> neighbors (). keys () )
159
+ for ( const QString &layerId : layerIds )
159
160
{
160
- QgsFeaturePool *featurePool = mContext ->featurePools [ layerId ] ;
161
+ QgsFeaturePool *featurePool = mContext ->featurePools . value ( layerId ) ;
161
162
QgsAbstractGeometry *errLayerGeom = errGeometry->clone ();
162
163
errLayerGeom->transform ( featurePool->getLayerToMapTransform (), QgsCoordinateTransform::ReverseTransform );
163
164
164
- for ( QgsFeatureId testId : err->neighbors ()[layerId] )
165
+ const auto featureIds = err->neighbors ().value ( layerId );
166
+
167
+ for ( QgsFeatureId testId : featureIds )
165
168
{
166
169
QgsFeature testFeature;
167
170
if ( !featurePool->get ( testId, testFeature ) )
0 commit comments