[Qgis-developer] WFS provider without cache broken

Vincent Mora vincent.mora at oslandia.com
Tue May 27 00:17:48 PDT 2014


On 26/05/2014 18:07, Martin Dobias wrote:
> Hi Vincent
>
> On Mon, May 26, 2014 at 9:57 PM, Vincent Mora <vincent.mora at oslandia.com> wrote:
>> Hi,
>>
>> The WFS data provider seems broken when not-cached. As far I can see
>> QgsWFSProvider::getFeatures( const QgsFeatureRequest& request ) is never
>> called, and it's where the special case of uri with BBOX (i.e. non-cached)
>> is dealt with.
> True. I guess I must have broken that while implementing support for MTR :-/
>
>> The feature request from the vector layer goes through QgsWFSFeatureSource
>> where cached features are stored. I think that a big part of the code in
>> QgsWFSProvider should go in QgsWFSFeatureSource in order to cleanly fix the
>> problem.
>>
>> Can I have a second opinion on that before working on in this direction ?
> Not sure what do you mean by 'big part of the code' but I guess you
> are referring to the routines that download WFS data and transform
> them to a map of features.
Yes.
> Currently the 'feature source' classes in
> all providers are merely meant as a pure storage of information needed
> for iterating, with no logic inside, and they are typically deleted
> when iterators are closed. Because of that I would suggest moving any
> logic regarding data retrieval to wfs feature iterator implementation.
Agreed, that precises what I had in mind. Thanks.

I'll work from that and propose a design.

Cheers,

V.
> In any case that code should not be in provider class.
>
> Regards
> Martin



More information about the Qgis-developer mailing list