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