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
_______________________________________________ [hidden email] 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 |
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 > > > > > _______________________________________________ > [hidden email] > 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). _______________________________________________ [hidden email] 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 |
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. _______________________________________________ [hidden email] 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 |
Grazie delle info, Sandro.
Rispetto a quale punto viene applicata la rotazione? Sig Il giorno ven, 25/05/2012 alle 16.38 +0200, [hidden email] 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). _______________________________________________ [hidden email] 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 |
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. _______________________________________________ [hidden email] 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 |
In pausa caffè ho creato uno script che potrebbe tornarti comodo:
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, <[hidden email]> ha scritto:
_______________________________________________ [hidden email] 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 <[hidden email]> ha scritto: In pausa caffè ho creato uno script che potrebbe tornarti comodo: _______________________________________________ [hidden email] 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 |
In reply to this post by a.furieri
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, [hidden email] 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). _______________________________________________ [hidden email] 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 |
Il giorno 25 maggio 2012 18:23, Luca Sigfrido Percich <[hidden email]> ha scritto:
Se ti riferisci allo script, per cambiare il centro di rotazione basta che setti bboxcx e bboxcy diversamente.
Ciao, giovanni Grazie ancora _______________________________________________ [hidden email] 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 > <[hidden email]> 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, [hidden email] > 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). > > _______________________________________________ > [hidden email] > 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). _______________________________________________ [hidden email] 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 |
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 <[hidden email]> ha scritto: No, mi riferivo alle due funzioni disponibili in spatialite di cui _______________________________________________ [hidden email] 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 |
Free forum by Nabble | Edit this page |