@@ -492,9 +492,6 @@ int QgsWFSServer::getFeature( QgsRequestHandler& request, const QString& format
492
492
, searchRect.yMaximum () + 0.000001 );
493
493
layerCrs = layer->crs ();
494
494
495
- if ( maxFeatures == -1 )
496
- maxFeat += layer->featureCount ();
497
-
498
495
QgsFeatureIterator fit = layer->getFeatures (
499
496
QgsFeatureRequest ()
500
497
.setFlags ( QgsFeatureRequest::ExactIntersect | ( mWithGeom ? QgsFeatureRequest::NoFlags : QgsFeatureRequest::NoGeometry ) )
@@ -563,7 +560,7 @@ int QgsWFSServer::getFeature( QgsRequestHandler& request, const QString& format
563
560
req.setSubsetOfAttributes ( attrIndexes );
564
561
565
562
QgsFeatureIterator fit = layer->getFeatures ( req );
566
- while ( fit.nextFeature ( feature ) && featureCounter < maxFeat )
563
+ while ( fit.nextFeature ( feature ) && (maxFeatures == - 1 || featureCounter < maxFeat) )
567
564
{
568
565
if ( featureCounter == 0 )
569
566
startGetFeature ( request, format, layerCrs, &searchRect );
@@ -582,7 +579,7 @@ int QgsWFSServer::getFeature( QgsRequestHandler& request, const QString& format
582
579
{
583
580
throw QgsMapServiceException ( " RequestNotWellFormed" , mFilter ->parserErrorString () );
584
581
}
585
- while ( fit.nextFeature ( feature ) && featureCounter < maxFeat )
582
+ while ( fit.nextFeature ( feature ) && (maxFeatures == - 1 || featureCounter < maxFeat) )
586
583
{
587
584
QVariant res = mFilter ->evaluate ( &feature, fields );
588
585
if ( mFilter ->hasEvalError () )
@@ -604,7 +601,7 @@ int QgsWFSServer::getFeature( QgsRequestHandler& request, const QString& format
604
601
}
605
602
else
606
603
{
607
- while ( fit.nextFeature ( feature ) && featureCounter < maxFeat )
604
+ while ( fit.nextFeature ( feature ) && (maxFeatures == - 1 || featureCounter < maxFeat) )
608
605
{
609
606
if ( featureCounter == 0 )
610
607
startGetFeature ( request, format, layerCrs, &searchRect );
@@ -820,9 +817,6 @@ int QgsWFSServer::getFeature( QgsRequestHandler& request, const QString& format
820
817
}
821
818
}
822
819
823
- if ( maxFeatures == -1 )
824
- maxFeat += layer->featureCount ();
825
-
826
820
if ( bboxOk )
827
821
searchRect.set ( minx, miny, maxx, maxy );
828
822
else
@@ -883,7 +877,7 @@ int QgsWFSServer::getFeature( QgsRequestHandler& request, const QString& format
883
877
{
884
878
throw QgsMapServiceException ( " RequestNotWellFormed" , QString ( " Expression filter error message: %1." ).arg ( mFilter ->parserErrorString () ) );
885
879
}
886
- while ( fit.nextFeature ( feature ) && featureCounter < maxFeat )
880
+ while ( fit.nextFeature ( feature ) && (maxFeatures == - 1 || featureCounter < maxFeat) )
887
881
{
888
882
QVariant res = mFilter ->evaluate ( &feature, fields );
889
883
if ( mFilter ->hasEvalError () )
@@ -964,7 +958,7 @@ int QgsWFSServer::getFeature( QgsRequestHandler& request, const QString& format
964
958
req.setSubsetOfAttributes ( attrIndexes );
965
959
966
960
QgsFeatureIterator fit = layer->getFeatures ( req );
967
- while ( fit.nextFeature ( feature ) && featureCounter < maxFeat )
961
+ while ( fit.nextFeature ( feature ) && (maxFeatures == - 1 || featureCounter < maxFeat) )
968
962
{
969
963
if ( featureCounter == 0 )
970
964
startGetFeature ( request, format, layerCrs, &searchRect );
@@ -1002,7 +996,7 @@ int QgsWFSServer::getFeature( QgsRequestHandler& request, const QString& format
1002
996
}
1003
997
req.setSubsetOfAttributes ( attrIndexes );
1004
998
QgsFeatureIterator fit = layer->getFeatures ( req );
1005
- while ( fit.nextFeature ( feature ) && featureCounter < maxFeat )
999
+ while ( fit.nextFeature ( feature ) && (maxFeatures == - 1 || featureCounter < maxFeat) )
1006
1000
{
1007
1001
QVariant res = mFilter ->evaluate ( &feature, fields );
1008
1002
if ( mFilter ->hasEvalError () )
@@ -1045,7 +1039,7 @@ int QgsWFSServer::getFeature( QgsRequestHandler& request, const QString& format
1045
1039
}
1046
1040
req.setSubsetOfAttributes ( attrIndexes );
1047
1041
QgsFeatureIterator fit = layer->getFeatures ( req );
1048
- while ( fit.nextFeature ( feature ) && featureCounter < maxFeat )
1042
+ while ( fit.nextFeature ( feature ) && (maxFeatures == - 1 || featureCounter < maxFeat) )
1049
1043
{
1050
1044
mErrors << QString ( " The feature %2 of layer for the TypeName '%1'" ).arg ( tnStr ).arg ( featureCounter );
1051
1045
if ( featureCounter == 0 )
0 commit comments