salve,
ho una griglia, poligono, su qgis
e la vorrei ruotare di qualche grado su se stessa.
Posso farlo in qualche modo?
Vi ringrazio (e scusate se non uso i termini giusti)
Maurizio Marrese
salve,
ho una griglia, poligono, su qgis
e la vorrei ruotare di qualche grado su se stessa.
Posso farlo in qualche modo?
Vi ringrazio (e scusate se non uso i termini giusti)
Maurizio Marrese
Ciao Maurizio,
non l'ho provato ma c'è questo script basato su OGR:
http://svn.osgeo.org/gdal/trunk/gdal/swig/python/samples/vec_tr.py
devi codificare la logica della tua trasformazione (una rototraslazione
o trasformazione affine) nella funzione TransformPoint( xyz ).
Buon lavoro
Sig
Il giorno ven, 25/05/2012 alle 12.42 +0200, Maurizio Marrese ha scritto:
salve,
ho una griglia, poligono, su qgis
e la vorrei ruotare di qualche grado su se stessa.Posso farlo in qualche modo?
Vi ringrazio (e scusate se non uso i termini giusti)
Maurizio Marrese
_______________________________________________
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
584 iscritti al 7.4.2012
_____________
PRIVACY
Le informazioni contenute in questo messaggio sono riservate e confidenziali. Il loro utilizzo e' consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora Lei non fosse la persona a cui il presente messaggio è destinato, La invitiamo ad eliminarlo dal Suo Sistema e a distruggere le varie copie o stampe, dandone gentilmente comunicazione all’indirizzo mail del mittente. Ogni utilizzo improprio e' contrario ai principi del D.lgs 196/03 e alla legislazione europea (Direttiva 2002/58/CE).
PRIVACY
Le informazioni contenute in questo messaggio sono riservate e confidenziali. Il loro utilizzo e' consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora Lei non fosse la persona a cui il presente messaggio è destinato, La invitiamo ad eliminarlo dal Suo Sistema e a distruggere le varie copie o stampe, dandone gentilmente comunicazione all’indirizzo mail del mittente. Ogni utilizzo improprio e' contrario ai principi del D.lgs 196/03 e alla legislazione europea (Direttiva 2002/58/CE).
On Fri, 25 May 2012 16:31:57 +0200, Luca Sigfrido Percich wrote:
non l'ho provato ma c'è questo script basato su OGR:
http://svn.osgeo.org/gdal/trunk/gdal/swig/python/samples/vec_tr.py
devi codificare la logica della tua trasformazione (una rototraslazione
o trasformazione affine) nella funzione TransformPoint( xyz ).
lo puoi fare anche con SpatiaLite:
RotateCoordinates( geom Geometry , angleInDegrees Double precision ) : Geometry
"return a geometric object obtained by rotating coordinates
according to angleInDegrees value"
ciao Sandro
--
Il messaggio e' stato analizzato alla ricerca di virus o
contenuti pericolosi da MailScanner, ed e'
risultato non infetto.
Grazie delle info, Sandro.
Rispetto a quale punto viene applicata la rotazione?
Sig
Il giorno ven, 25/05/2012 alle 16.38 +0200, a.furieri@lqt.it ha scritto:
RotateCoordinates( geom Geometry , angleInDegrees Double precision ) :
Geometry"return a geometric object obtained by rotating coordinates
according to angleInDegrees value"
_____________
PRIVACY
Le informazioni contenute in questo messaggio sono riservate e confidenziali. Il loro utilizzo e' consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora Lei non fosse la persona a cui il presente messaggio è destinato, La invitiamo ad eliminarlo dal Suo Sistema e a distruggere le varie copie o stampe, dandone gentilmente comunicazione all’indirizzo mail del mittente. Ogni utilizzo improprio e' contrario ai principi del D.lgs 196/03 e alla legislazione europea (Direttiva 2002/58/CE).
PRIVACY
Le informazioni contenute in questo messaggio sono riservate e confidenziali. Il loro utilizzo e' consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora Lei non fosse la persona a cui il presente messaggio è destinato, La invitiamo ad eliminarlo dal Suo Sistema e a distruggere le varie copie o stampe, dandone gentilmente comunicazione all’indirizzo mail del mittente. Ogni utilizzo improprio e' contrario ai principi del D.lgs 196/03 e alla legislazione europea (Direttiva 2002/58/CE).
On Fri, 25 May 2012 17:36:43 +0200, Luca Sigfrido Percich wrote:
Grazie delle info, Sandro.
Rispetto a quale punto viene applicata la rotazione?
quello piu' scemo ed ovvio ... (0,0)
insomma, ti fa semplicemente ruotare tutto il piano
ma esiste anche questa qua:
ShiftCoordinates( geom Geometry , shiftX Double precision , shiftY Double precision ) : Geometry
"return a geometric object obtained by translating coordinates according
to shiftX and shiftY values"
quindi innestando a catena uno shift, un rotate ed un ultimo shift
esattamente simmetrico al primo ti puoi posizionare l'asse di rotazione
dove meglio credi ((p.es. sul centroide del poligono).
ciao Sandro
--
Il messaggio e' stato analizzato alla ricerca di virus o
contenuti pericolosi da MailScanner, ed e'
risultato non infetto.
In pausa caffè ho creato uno script che potrebbe tornarti comodo:
http://www.giovanniallegri.it/share/rotlayer.txt
Copialo e incollalo dentro la console di Python di Qgis.
e poi scrivi:
rotalyer(‘griglia’,45)
ovvero, nome del layer contenente la griglia di poligoni e l’angolo in gradi.
Vedi questa figura: http://www.giovanniallegri.it/share/rotlayer.png
E’ molto rudimentale, e funziona solo per griglie con poligoni e non multipolygons. Ci vuole poco a sistemarlo, ma la pausa caffè è già finita
giovanni
Il giorno 25 maggio 2012 17:53, <a.furieri@lqt.it> ha scritto:
On Fri, 25 May 2012 17:36:43 +0200, Luca Sigfrido Percich wrote:
Grazie delle info, Sandro.
Rispetto a quale punto viene applicata la rotazione?
quello piu’ scemo ed ovvio … (0,0)
insomma, ti fa semplicemente ruotare tutto il pianoma esiste anche questa qua:
ShiftCoordinates( geom Geometry , shiftX Double precision , shiftY Double precision ) : Geometry
“return a geometric object obtained by translating coordinates according
to shiftX and shiftY values”quindi innestando a catena uno shift, un rotate ed un ultimo shift
esattamente simmetrico al primo ti puoi posizionare l’asse di rotazione
dove meglio credi ((p.es. sul centroide del poligono).ciao Sandro
–
Il messaggio e’ stato analizzato alla ricerca di virus o
contenuti pericolosi da MailScanner, ed e’
risultato non infetto.
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e’ una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell’Associazione GFOSS.it.
584 iscritti al 7.4.2012
PS: visto che chiedevi la rotazione su se stessa della griglia, ho posto come centro di rotazione il centro dell’estensione della grigila.
Il giorno 25 maggio 2012 18:15, G. Allegri <giohappy@gmail.com> ha scritto:
In pausa caffè ho creato uno script che potrebbe tornarti comodo:
http://www.giovanniallegri.it/share/rotlayer.txt
Copialo e incollalo dentro la console di Python di Qgis.
e poi scrivi:rotalyer(‘griglia’,45)
ovvero, nome del layer contenente la griglia di poligoni e l’angolo in gradi.
Vedi questa figura: http://www.giovanniallegri.it/share/rotlayer.pngE’ molto rudimentale, e funziona solo per griglie con poligoni e non multipolygons. Ci vuole poco a sistemarlo, ma la pausa caffè è già finita
giovanni
Il giorno 25 maggio 2012 17:53, <a.furieri@lqt.it> ha scritto:
On Fri, 25 May 2012 17:36:43 +0200, Luca Sigfrido Percich wrote:
Grazie delle info, Sandro.
Rispetto a quale punto viene applicata la rotazione?
quello piu’ scemo ed ovvio … (0,0)
insomma, ti fa semplicemente ruotare tutto il pianoma esiste anche questa qua:
ShiftCoordinates( geom Geometry , shiftX Double precision , shiftY Double precision ) : Geometry
“return a geometric object obtained by translating coordinates according
to shiftX and shiftY values”quindi innestando a catena uno shift, un rotate ed un ultimo shift
esattamente simmetrico al primo ti puoi posizionare l’asse di rotazione
dove meglio credi ((p.es. sul centroide del poligono).ciao Sandro
–
Il messaggio e’ stato analizzato alla ricerca di virus o
contenuti pericolosi da MailScanner, ed e’
risultato non infetto.
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e’ una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell’Associazione GFOSS.it.
584 iscritti al 7.4.2012
Infatti temevo potesse essere rispetto al centroide, ma ora che vedo la
rototraslazione implementata con due funzioni piccole e specializzate -
questo si che è programmare - non dubito più :))))
Grazie ancora
Sig
Il giorno ven, 25/05/2012 alle 17.53 +0200, a.furieri@lqt.it ha scritto:
On Fri, 25 May 2012 17:36:43 +0200, Luca Sigfrido Percich wrote:
> Grazie delle info, Sandro.
>
> Rispetto a quale punto viene applicata la rotazione?
>quello piu' scemo ed ovvio ... (0,0)
insomma, ti fa semplicemente ruotare tutto il pianoma esiste anche questa qua:
ShiftCoordinates( geom Geometry , shiftX Double precision , shiftY
Double precision ) : Geometry
"return a geometric object obtained by translating coordinates
according
to shiftX and shiftY values"quindi innestando a catena uno shift, un rotate ed un ultimo shift
esattamente simmetrico al primo ti puoi posizionare l'asse di rotazione
dove meglio credi ((p.es. sul centroide del poligono).ciao Sandro
_____________
PRIVACY
Le informazioni contenute in questo messaggio sono riservate e confidenziali. Il loro utilizzo e' consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora Lei non fosse la persona a cui il presente messaggio è destinato, La invitiamo ad eliminarlo dal Suo Sistema e a distruggere le varie copie o stampe, dandone gentilmente comunicazione all’indirizzo mail del mittente. Ogni utilizzo improprio e' contrario ai principi del D.lgs 196/03 e alla legislazione europea (Direttiva 2002/58/CE).
PRIVACY
Le informazioni contenute in questo messaggio sono riservate e confidenziali. Il loro utilizzo e' consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora Lei non fosse la persona a cui il presente messaggio è destinato, La invitiamo ad eliminarlo dal Suo Sistema e a distruggere le varie copie o stampe, dandone gentilmente comunicazione all’indirizzo mail del mittente. Ogni utilizzo improprio e' contrario ai principi del D.lgs 196/03 e alla legislazione europea (Direttiva 2002/58/CE).
Il giorno 25 maggio 2012 18:23, Luca Sigfrido Percich <sigfrido@tiscali.it> ha scritto:
Infatti temevo potesse essere rispetto al centroide, ma ora che vedo la
rototraslazione implementata con due funzioni piccole e specializzate -
questo si che è programmare - non dubito più :))))
Se ti riferisci allo script, per cambiare il centro di rotazione basta che setti bboxcx e bboxcy diversamente.
Ciao,
giovanni
Grazie ancora
Sig
Il giorno ven, 25/05/2012 alle 17.53 +0200, a.furieri@lqt.it ha scritto:
On Fri, 25 May 2012 17:36:43 +0200, Luca Sigfrido Percich wrote:
Grazie delle info, Sandro.
Rispetto a quale punto viene applicata la rotazione?
quello piu’ scemo ed ovvio … (0,0)
insomma, ti fa semplicemente ruotare tutto il pianoma esiste anche questa qua:
ShiftCoordinates( geom Geometry , shiftX Double precision , shiftY
Double precision ) : Geometry
“return a geometric object obtained by translating coordinates
according
to shiftX and shiftY values”quindi innestando a catena uno shift, un rotate ed un ultimo shift
esattamente simmetrico al primo ti puoi posizionare l’asse di rotazione
dove meglio credi ((p.es. sul centroide del poligono).ciao Sandro
PRIVACY
Le informazioni contenute in questo messaggio sono riservate e confidenziali. Il loro utilizzo e’ consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora Lei non fosse la persona a cui il presente messaggio è destinato, La invitiamo ad eliminarlo dal Suo Sistema e a distruggere le varie copie o stampe, dandone gentilmente comunicazione all’indirizzo mail del mittente. Ogni utilizzo improprio e’ contrario ai principi del D.lgs 196/03 e alla legislazione europea (Direttiva 2002/58/CE).PRIVACY
Le informazioni contenute in questo messaggio sono riservate e confidenziali. Il loro utilizzo e’ consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora Lei non fosse la persona a cui il presente messaggio è destinato, La invitiamo ad eliminarlo dal Suo Sistema e a distruggere le varie copie o stampe, dandone gentilmente comunicazione all’indirizzo mail del mittente. Ogni utilizzo improprio e’ contrario ai principi del D.lgs 196/03 e alla legislazione europea (Direttiva 2002/58/CE).
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e’ una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell’Associazione GFOSS.it.
584 iscritti al 7.4.2012
No, mi riferivo alle due funzioni disponibili in spatialite di cui
parlava Sandro.
Grazie per lo script, molto illuminante!
Se il modello di accesso alle geometrie di QGIS è (lo stesso di /
compatibile con) OGR, si può modificare direttamente vertice per vertice
la geometria trattandola come Geometry, vedi la funzione
WalkAndTransform( geom ) da [1] che va sia con le (multi) che con le
geometrie semplici indipendentemente dal tipo. Che dici?
Sig
[1] http://svn.osgeo.org/gdal/trunk/gdal/swig/python/samples/vec_tr.py
Il giorno ven, 25/05/2012 alle 18.27 +0200, G. Allegri ha scritto:
Il giorno 25 maggio 2012 18:23, Luca Sigfrido Percich
<sigfrido@tiscali.it> ha scritto:
Infatti temevo potesse essere rispetto al centroide, ma ora
che vedo la
rototraslazione implementata con due funzioni piccole e
specializzate -
questo si che è programmare - non dubito più :))))Se ti riferisci allo script, per cambiare il centro di rotazione basta
che setti bboxcx e bboxcy diversamente.Ciao,
giovanniGrazie ancora
Sig
Il giorno ven, 25/05/2012 alle 17.53 +0200, a.furieri@lqt.it
ha scritto:
> On Fri, 25 May 2012 17:36:43 +0200, Luca Sigfrido Percich
wrote:
> > Grazie delle info, Sandro.
> >
> > Rispetto a quale punto viene applicata la rotazione?
> >
>
> quello piu' scemo ed ovvio ... (0,0)
> insomma, ti fa semplicemente ruotare tutto il piano
>
> ma esiste anche questa qua:
> ShiftCoordinates( geom Geometry , shiftX Double precision ,
shiftY
> Double precision ) : Geometry
> "return a geometric object obtained by translating
coordinates
> according
> to shiftX and shiftY values"
>
> quindi innestando a catena uno shift, un rotate ed un ultimo
shift
> esattamente simmetrico al primo ti puoi posizionare l'asse
di rotazione
> dove meglio credi ((p.es. sul centroide del poligono).
>
> ciao Sandro
>
_____________
PRIVACY
Le informazioni contenute in questo messaggio sono riservate e
confidenziali. Il loro utilizzo e' consentito esclusivamente
al destinatario del messaggio, per le finalità indicate nel
messaggio stesso. Qualora Lei non fosse la persona a cui il
presente messaggio è destinato, La invitiamo ad eliminarlo dal
Suo Sistema e a distruggere le varie copie o stampe, dandone
gentilmente comunicazione all’indirizzo mail del mittente.
Ogni utilizzo improprio e' contrario ai principi del D.lgs
196/03 e alla legislazione europea (Direttiva 2002/58/CE).
PRIVACY
Le informazioni contenute in questo messaggio sono riservate e
confidenziali. Il loro utilizzo e' consentito esclusivamente
al destinatario del messaggio, per le finalità indicate nel
messaggio stesso. Qualora Lei non fosse la persona a cui il
presente messaggio è destinato, La invitiamo ad eliminarlo dal
Suo Sistema e a distruggere le varie copie o stampe, dandone
gentilmente comunicazione all’indirizzo mail del mittente.
Ogni utilizzo improprio e' contrario ai principi del D.lgs
196/03 e alla legislazione europea (Direttiva 2002/58/CE).
_______________________________________________
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
584 iscritti al 7.4.2012
_____________
PRIVACY
Le informazioni contenute in questo messaggio sono riservate e confidenziali. Il loro utilizzo e' consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora Lei non fosse la persona a cui il presente messaggio è destinato, La invitiamo ad eliminarlo dal Suo Sistema e a distruggere le varie copie o stampe, dandone gentilmente comunicazione all’indirizzo mail del mittente. Ogni utilizzo improprio e' contrario ai principi del D.lgs 196/03 e alla legislazione europea (Direttiva 2002/58/CE).
PRIVACY
Le informazioni contenute in questo messaggio sono riservate e confidenziali. Il loro utilizzo e' consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora Lei non fosse la persona a cui il presente messaggio è destinato, La invitiamo ad eliminarlo dal Suo Sistema e a distruggere le varie copie o stampe, dandone gentilmente comunicazione all’indirizzo mail del mittente. Ogni utilizzo improprio e' contrario ai principi del D.lgs 196/03 e alla legislazione europea (Direttiva 2002/58/CE).
Bhè, certo che si può generalizzare. La funzioncina era solo per rispondere alla richiesta specifica di Murizio (che ne frattempo avrà sicuramente risolto in altro modo!).
ciao
Il giorno 25 maggio 2012 18:33, Luca Sigfrido Percich <sigfrido@tiscali.it> ha scritto:
No, mi riferivo alle due funzioni disponibili in spatialite di cui
parlava Sandro.Grazie per lo script, molto illuminante!
Se il modello di accesso alle geometrie di QGIS è (lo stesso di /
compatibile con) OGR, si può modificare direttamente vertice per vertice
la geometria trattandola come Geometry, vedi la funzione
WalkAndTransform( geom ) da [1] che va sia con le (multi) che con le
geometrie semplici indipendentemente dal tipo. Che dici?Sig
[1] http://svn.osgeo.org/gdal/trunk/gdal/swig/python/samples/vec_tr.py
Il giorno ven, 25/05/2012 alle 18.27 +0200, G. Allegri ha scritto:
Il giorno 25 maggio 2012 18:23, Luca Sigfrido Percich
<sigfrido@tiscali.it> ha scritto:Infatti temevo potesse essere rispetto al centroide, ma ora
che vedo la
rototraslazione implementata con due funzioni piccole e
specializzate -
questo si che è programmare - non dubito più :))))Se ti riferisci allo script, per cambiare il centro di rotazione basta
che setti bboxcx e bboxcy diversamente.Ciao,
giovanniGrazie ancora
Sig
Il giorno ven, 25/05/2012 alle 17.53 +0200, a.furieri@lqt.it
ha scritto:On Fri, 25 May 2012 17:36:43 +0200, Luca Sigfrido Percich
wrote:Grazie delle info, Sandro.
Rispetto a quale punto viene applicata la rotazione?
quello piu’ scemo ed ovvio … (0,0)
insomma, ti fa semplicemente ruotare tutto il pianoma esiste anche questa qua:
ShiftCoordinates( geom Geometry , shiftX Double precision ,
shiftY
Double precision ) : Geometry
“return a geometric object obtained by translating
coordinates
according
to shiftX and shiftY values”quindi innestando a catena uno shift, un rotate ed un ultimo
shift
esattamente simmetrico al primo ti puoi posizionare l’asse
di rotazione
dove meglio credi ((p.es. sul centroide del poligono).ciao Sandro
PRIVACY
Le informazioni contenute in questo messaggio sono riservate e
confidenziali. Il loro utilizzo e’ consentito esclusivamente
al destinatario del messaggio, per le finalità indicate nel
messaggio stesso. Qualora Lei non fosse la persona a cui il
presente messaggio è destinato, La invitiamo ad eliminarlo dal
Suo Sistema e a distruggere le varie copie o stampe, dandone
gentilmente comunicazione all’indirizzo mail del mittente.
Ogni utilizzo improprio e’ contrario ai principi del D.lgs
196/03 e alla legislazione europea (Direttiva 2002/58/CE).PRIVACY
Le informazioni contenute in questo messaggio sono riservate e
confidenziali. Il loro utilizzo e’ consentito esclusivamente
al destinatario del messaggio, per le finalità indicate nel
messaggio stesso. Qualora Lei non fosse la persona a cui il
presente messaggio è destinato, La invitiamo ad eliminarlo dal
Suo Sistema e a distruggere le varie copie o stampe, dandone
gentilmente comunicazione all’indirizzo mail del mittente.
Ogni utilizzo improprio e’ contrario ai principi del D.lgs
196/03 e alla legislazione europea (Direttiva 2002/58/CE).
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e’ una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell’Associazione GFOSS.it.
584 iscritti al 7.4.2012
PRIVACY
Le informazioni contenute in questo messaggio sono riservate e confidenziali. Il loro utilizzo e’ consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora Lei non fosse la persona a cui il presente messaggio è destinato, La invitiamo ad eliminarlo dal Suo Sistema e a distruggere le varie copie o stampe, dandone gentilmente comunicazione all’indirizzo mail del mittente. Ogni utilizzo improprio e’ contrario ai principi del D.lgs 196/03 e alla legislazione europea (Direttiva 2002/58/CE).PRIVACY
Le informazioni contenute in questo messaggio sono riservate e confidenziali. Il loro utilizzo e’ consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora Lei non fosse la persona a cui il presente messaggio è destinato, La invitiamo ad eliminarlo dal Suo Sistema e a distruggere le varie copie o stampe, dandone gentilmente comunicazione all’indirizzo mail del mittente. Ogni utilizzo improprio e’ contrario ai principi del D.lgs 196/03 e alla legislazione europea (Direttiva 2002/58/CE).