File tree Expand file tree Collapse file tree 1 file changed +12
-4
lines changed Expand file tree Collapse file tree 1 file changed +12
-4
lines changed Original file line number Diff line number Diff line change @@ -364,12 +364,20 @@ void QgsMapToolScaleFeature::applyScaling( double scale )
364
364
t.scale ( mScaling , mScaling );
365
365
t.translate ( -layerCoords.x (), -layerCoords.y () );
366
366
367
- for ( QgsFeatureId id : std::as_const ( mScaledFeatures ) )
367
+ QgsFeatureRequest request;
368
+ request.setFilterFids ( mScaledFeatures ).setNoAttributes ();
369
+ QgsFeatureIterator fi = vlayer->getFeatures ( request );
370
+ QgsFeature feat;
371
+ while ( fi.nextFeature ( feat ) )
368
372
{
369
- QgsFeature feat;
370
- vlayer->getFeatures ( QgsFeatureRequest ().setFilterFid ( id ) ).nextFeature ( feat );
373
+ if ( !feat.hasGeometry () )
374
+ continue ;
375
+
371
376
QgsGeometry geom = feat.geometry ();
372
- geom.transform ( t );
377
+ if ( !( geom.transform ( t ) == QgsGeometry::Success ) )
378
+ continue ;
379
+
380
+ QgsFeatureId id = feat.id ();
373
381
vlayer->changeGeometry ( id, geom );
374
382
}
375
383
You can’t perform that action at this time.
0 commit comments