[Gfoss] Qgis 2.8.1 e VectorLayer Translate

Pietro Panzeri pietro.panzeri a treuropa.com
Mer 22 Apr 2015 15:14:34 CEST


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 <luipir a gmail.com>:

> 2015-04-22 11:06 GMT+02:00 Pietro Panzeri <pietro.panzeri a 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.panzeri a treuropa.com - www.treuropa.com
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.gfoss.it/pipermail/gfoss/attachments/20150422/1c292a85/attachment-0001.html>


Maggiori informazioni sulla lista Gfoss