Skip to content

Commit 3e25f11

Browse files
committed
Merge pull request #760 from ddanielvaz/partial-fix-7708
Partial fix for #7708
2 parents b88b76b + 0523e89 commit 3e25f11

File tree

1 file changed

+6
-7
lines changed

1 file changed

+6
-7
lines changed

python/plugins/fTools/tools/doGeoprocessing.py

+6-7
Original file line numberDiff line numberDiff line change
@@ -1092,7 +1092,7 @@ def union( self ):
10921092
indexA = ftools_utils.createIndex( vproviderB )
10931093
indexB = ftools_utils.createIndex( vproviderA )
10941094

1095-
nFeat = vproviderA.featureCount() * vproviderB.featureCount()
1095+
nFeat = vproviderA.featureCount() + vproviderB.featureCount()
10961096
self.emit( SIGNAL( "runStatus(PyQt_PyObject)" ), 0)
10971097
self.emit( SIGNAL( "runRange(PyQt_PyObject)" ), ( 0, nFeat ) )
10981098

@@ -1198,12 +1198,11 @@ def union( self ):
11981198
length = len( vproviderA.fields() )
11991199

12001200
fitB = vproviderB.getFeatures()
1201-
while fitB.nextFeature( inFeatA ):
1201+
while fitB.nextFeature( inFeatB ):
12021202
add = False
1203-
geom = QgsGeometry( inFeatA.geometry() )
1203+
geom = QgsGeometry( inFeatB.geometry() )
12041204
diff_geom = QgsGeometry( geom )
1205-
atMap = inFeatA.attributes()
1206-
atMap = dict( zip( range( length, length + len( atMap ) ), atMap ) )
1205+
atMap = inFeatB.attributes()
12071206
intersects = indexB.intersects( geom.boundingBox() )
12081207

12091208
if len(intersects) < 1:
@@ -1215,8 +1214,8 @@ def union( self ):
12151214
FEATURE_EXCEPT = False
12161215
else:
12171216
for id in intersects:
1218-
vproviderB.getFeatures( QgsFeatureRequest().setFilterFid( int( id ) ) ).nextFeature( inFeatB )
1219-
tmpGeom = QgsGeometry( inFeatB.geometry() )
1217+
vproviderA.getFeatures( QgsFeatureRequest().setFilterFid( int( id ) ) ).nextFeature( inFeatA )
1218+
tmpGeom = QgsGeometry( inFeatA.geometry() )
12201219

12211220
try:
12221221
if diff_geom.intersects( tmpGeom ):

0 commit comments

Comments
 (0)