Grazie mille per la risposta.
Ho provato ad usare il codice hai scritto e che utilizza la getFeatures().
Le cose sono effettivamente cambiate nel seguente modo:
la prima volta che faccio una traslazione ci impiega sempre 4minuti come
prima mentre dalla seconda volta ci impiega 20 secondi: ha effettivamente
messo in cache le geometrie.
La domanda quindi rimane aperta: come mai nella versione 1.8 gia' la prima
esecuzione ha prestazioni ottime mentre nella 2.8.1 invece e' necessario
popolare "esplicitamente" la cache con prestazioni notevolmente peggiori?

Pietro






2015-04-22 12:59 GMT+02:00 Luigi Pirelli <lui...@gmail.com>:

> 2015-04-22 11:06 GMT+02:00 Pietro Panzeri <pietro.panz...@treuropa.com>:
> > translateFeature
>
>
> il codice del translate e' piuttosto semplice [1] attualmente percio'
> penso a due aspetti
>
> 1) senza andarmi a vedere il codice della 1.8 direi che prima avevi la
> rob ain cache e ora no
> 2) in cache potenzialment enon la hay visto che usi featureCount
> invece che getFeatures()
> 3) sconsiglio0 di usare un range su featureCount... non farei
> assunzioni su quale debba essere la logica degli id delle feature
> dentro QGIS => userei la classica
> 4) la http://qgis.org/api/qgsvectorlayereditutils_8cpp_source.html#l00174
> dice che se la geometria non e' nella cache fa una getFeature ad hoc
> => fai una get feature ricreando l'iteratore ogni volta!...
>
> for feat in vector.getFeatures():
>     fid = feat.id()
>     vlayer.translateFeature(fid, delta_x, delta_y)
>
> prova e fai sapere
>
> [1] http://qgis.org/api/qgsvectorlayereditutils_8cpp_source.html#l00164
>
> a presto, Luigi Pirelli
>
>
> **************************************************************************************************
> * LinkedIn: https://www.linkedin.com/in/luigipirelli
> * Elance: https://www.elance.com/s/edit/luigipirelli/
> * GitHub: https://github.com/luipir
> * Stackexchange: http://gis.stackexchange.com/users/19667/luigi-pirelli
> * Mastering QGIS:
> https://www.packtpub.com/application-development/mastering-qgis
>
> **************************************************************************************************
>



-- 
Pietro Panzeri

Software Development Manager

Tele-Rilevamento Europa - T.R.E. srl
Ripa di Porta Ticinese, 79
20143 Milano – Italia
Tel.: +39.02.4343.121 - Fax: +39.02.4343.1230
pietro.panz...@treuropa.com - www.treuropa.com
_______________________________________________
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni 
dell'Associazione GFOSS.it.
750 iscritti al 18.3.2015

Rispondere a