Skip to content

Commit edee876

Browse files
committed
Merge pull request #2985 from manisandro/geom_checker_fixes
Geom checker fixes
2 parents d07bc18 + a0b9877 commit edee876

File tree

2 files changed

+12
-9
lines changed

2 files changed

+12
-9
lines changed

src/plugins/geometry_checker/checks/qgsgeometryareacheck.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -182,14 +182,6 @@ bool QgsGeometryAreaCheck::mergeWithNeighbor( QgsFeature& feature, int partIdx,
182182
return method == MergeIdenticalAttribute ? true : false;
183183
}
184184

185-
186-
// Remove polygon from source geometry
187-
deleteFeatureGeometryPart( feature, partIdx, changes );
188-
if ( mergeFeature.id() == feature.id() && mergePartIdx > partIdx )
189-
{
190-
--mergePartIdx;
191-
}
192-
193185
// Merge geometries
194186
QgsAbstractGeometryV2* mergeGeom = mergeFeature.geometry()->geometry();
195187
QgsGeometryEngine* geomEngine = QgsGeomUtils::createGeomEngine( QgsGeomUtils::getGeomPart( mergeGeom, mergePartIdx ), QgsGeometryCheckPrecision::tolerance() );
@@ -199,6 +191,14 @@ bool QgsGeometryAreaCheck::mergeWithNeighbor( QgsFeature& feature, int partIdx,
199191
{
200192
return false;
201193
}
194+
195+
// Remove polygon from source geometry
196+
deleteFeatureGeometryPart( feature, partIdx, changes );
197+
if ( mergeFeature.id() == feature.id() && mergePartIdx > partIdx )
198+
{
199+
--mergePartIdx;
200+
}
201+
// Replace polygon in merge geometry
202202
replaceFeatureGeometryPart( mergeFeature, mergePartIdx, combinedGeom, changes );
203203

204204
return true;

src/plugins/geometry_checker/checks/qgsgeometrycheck.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,10 @@ QgsAbstractGeometryV2 *QgsGeometryCheckError::geometry()
7070
{
7171
QgsFeature f;
7272
if ( mCheck->getFeaturePool()->get( featureId(), f ) && f.geometry() )
73-
return f.geometry()->geometry()->clone();
73+
{
74+
QgsAbstractGeometryV2* geom = f.geometry()->geometry();
75+
return mVidx.part >= 0 ? QgsGeomUtils::getGeomPart( geom, mVidx.part )->clone() : geom->clone();
76+
}
7477
return nullptr;
7578
}
7679

0 commit comments

Comments
 (0)