[Gfoss] QGis 2 - CRS and plugins ...

Salve a tutti,

ho notato che purtroppo le funzioni di PyQgis sono cambiate dalla versione 2.

E purtroppo, la nuova documentazione riguardante i CRS mi sembra non essere aggiornata:

http://www.qgis.org/en/docs/pyqgis_developer_cookbook/crs.html

Infatti, se eseguo:

crs = QgsCoordinateReferenceSystem()
print “EPSG ID:”, crs.epsg()

che era funzionante nella versione precedente, ora la ver 2 riporta l’errore:

AttributeError: ‘QgsCoordinateReferenceSystem’ object has no attribute ‘epsg’

Qualcuno può illuminarci in proposito (e nel caso correggere la documentazione) ?

:slight_smile:

Saluti e grazie

Roberto

se ricordo bene (ho gia’ affrontato il problema per un plugin) nella documentazione delle api cambiate e’ spiegato che il metodo ha semplicemente cambiato nome per essere piu’ generico.

non spiega dettagliatamente cosa fare, ma ci si arrivava per deduzione… ora nel dettaglio bisogna veder il codice

ciao ginetto

···

2013/10/11 Geo DrinX <geodrinx@gmail.com>

Salve a tutti,

ho notato che purtroppo le funzioni di PyQgis sono cambiate dalla versione 2.

E purtroppo, la nuova documentazione riguardante i CRS mi sembra non essere aggiornata:

http://www.qgis.org/en/docs/pyqgis_developer_cookbook/crs.html

Infatti, se eseguo:

crs = QgsCoordinateReferenceSystem()
print “EPSG ID:”, crs.epsg()

che era funzionante nella versione precedente, ora la ver 2 riporta l’errore:

AttributeError: ‘QgsCoordinateReferenceSystem’ object has no attribute ‘epsg’

Qualcuno può illuminarci in proposito (e nel caso correggere la documentazione) ?

:slight_smile:

Saluti e grazie

Roberto


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.
666 iscritti al 22.7.2013

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Il 11/10/2013 16:24, Geo DrinX ha scritto:

ho notato che purtroppo le funzioni di PyQgis sono cambiate dalla
versione 2.

non "purtroppo": "fortunatamente".
saluti.

- --
Paolo Cavallini - Faunalia
www.faunalia.eu
Full contact details at www.faunalia.eu/pc
Nuovi corsi QGIS e PostGIS: http://www.faunalia.it/calendario
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.14 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAlJY20IACgkQ/NedwLUzIr4AagCggxY/eSHcpzC0eTmBYO4YSbkz
sHwAn2gNmTO2FlIvkzG11VaLX2Z96tVm
=8V1h
-----END PGP SIGNATURE-----

Il giorno 12 ottobre 2013 07:16, Paolo Cavallini <cavallini@faunalia.it> ha
scritto:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Il 11/10/2013 16:24, Geo DrinX ha scritto:

> ho notato che purtroppo le funzioni di PyQgis sono cambiate dalla
> versione 2.

non "purtroppo": "fortunatamente".

Se "fortunatamente" una buona parte dei plugin non funzionano più e se
"fortunatamente" non esiste uno straccio di documentazione,
perché "fortunatamente" non serve, dato che si può dedurre la nuova
sintassi "facilmente"... buona fortuna a tutti.

:frowning:

Il giorno 11 ottobre 2013 18:38, Gino Pirelli <luipir@gmail.com> ha scritto:

se ricordo bene (ho gia' affrontato il problema per un plugin) nella
documentazione delle api cambiate e' spiegato che il metodo ha
semplicemente cambiato nome per essere piu' generico.

non spiega dettagliatamente cosa fare, ma ci si arrivava per deduzione...
ora nel dettaglio bisogna veder il codice

Perfetto. Il codice è questo:

crs = QgsCoordinateReferenceSystem()
print "EPSG ID:", crs.epsg()

Come va scritto ? E comunque, la pagina del manuale di QGis 2 è
sbagliato.

Saluti

Roberto

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Il 12/10/2013 13:28, Geo DrinX ha scritto:

crs = QgsCoordinateReferenceSystem() print "EPSG ID:", crs.epsg()

Come va scritto ? E comunque, la pagina del manuale di QGis 2 è
sbagliato.

mandaci una pull request, per cortesia
grazie
- --
Paolo Cavallini - Faunalia
www.faunalia.eu
Full contact details at www.faunalia.eu/pc
Nuovi corsi QGIS e PostGIS: http://www.faunalia.it/calendario
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.14 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAlJZMwQACgkQ/NedwLUzIr7xBQCcDpuEJVolVVr+vUP8nqQ2o4e/
530An3t5exOpn9onTFfSjcMBI3/isyBf
=6Nak
-----END PGP SIGNATURE-----

On Sat, Oct 12, 2013 at 01:28:42PM +0200, Geo DrinX wrote:

crs = QgsCoordinateReferenceSystem()
print "EPSG ID:", crs.epsg()

Come va scritto ? E comunque, la pagina del manuale di QGis 2 è
sbagliato.

Hai considerato l'apertura di un ticket ?
http://hub.qgis.org
Quando hai capito come scriverlo l'ideale sarebbe allegare
una patch al ticket.

Grazie!

--strk;

Il giorno 12 ottobre 2013 13:32, Sandro Santilli <strk@keybit.net> ha
scritto:

On Sat, Oct 12, 2013 at 01:28:42PM +0200, Geo DrinX wrote:

> crs = QgsCoordinateReferenceSystem()
> print "EPSG ID:", crs.epsg()
>
>
> Come va scritto ? E comunque, la pagina del manuale di QGis 2 è
> sbagliato.

Hai considerato l'apertura di un ticket ?
http://hub.qgis.org
Quando hai capito come scriverlo l'ideale sarebbe allegare
una patch al ticket.

Vi ringrazio tutti.

Aprirò un ticket e farò una patch quando avrò scoperto quale è la sintassi.

Nel frattempo, qualcuno sa come va scritto il codice sorgente python di
QGis per ottenere il crs epsg ?

Scusate, ma mi sembra una situazione un pò kafkiana ... :wink:

Simpaticamente

Roberto

… comunque, la pagina errata è questa:

http://www.qgis.org/en/docs/pyqgis_developer_cookbook/crs.html

Questa è la console di QGis 1.8 :

crs = QgsCoordinateReferenceSystem()

crs.createFromProj4(“+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs”)

True

print “EPSG ID:”, crs.epsg()

EPSG ID: 4326

E questa è la console di QGis 2.0.1 con le stesse istruzioni:

crs = QgsCoordinateReferenceSystem()

crs.createFromProj4(“+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs”)

True

print “EPSG ID:”, crs.epsg()

EPSG ID:Traceback (most recent call last):

File “”, line 1, in

AttributeError: ‘QgsCoordinateReferenceSystem’ object has no attribute ‘epsg’

La mia curiosità è questa: quale semplificazione del codice può aver spinto a cambiare una sintassi così intuitiva e banale ?

Oppure, semplicemente, è stato dimenticato di re-implementare delle funzioni ?

:wink:

Ciao

Roberto

PS: quando avrò capito come si fa, aprirò un ticket.

···

2013/10/12 Geo DrinX <geodrinx@gmail.com>

… comunque, la pagina errata è questa:

http://www.qgis.org/en/docs/pyqgis_developer_cookbook/crs.html

2013/10/12 Geo DrinX <geodrinx@gmail.com>

QgsCoordinateReferenceSystem

come ti avevo scritto nella prima mail... la modifica da fare e' scritta
nella documentazione delle modifiche:

http://hub.qgis.org/wiki/17/API_changes_for_version_20

qui trovi:

QgsCoordinateReferenceSystem *createFromEpsg( const long theEpsg )
Use createFromOgcWmsCrs()
equals( QString theProj4String )
Removed because the same proj.4 string not necessarily means the same CRS
epsg()
There are other authorities, use authid() instead

=> usa authid()

ciao ginetto

Grazie Ginetto.

crs = QgsCoordinateReferenceSystem()
crs.createFromProj4(“+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs”)
True
print “EPSG ID:”, crs.authid()
EPSG ID: EPSG:4326

Ora il codice funziona, a parte che la risposta è più prolissa, e contiene (giustamente) l’autorità di riferimento.

Di nuovo grazie mille, anzi EPSG:1000 :wink:

Roberto

···

2013/10/12 Gino Pirelli <luipir@gmail.com>

2013/10/12 Geo DrinX <geodrinx@gmail.com>

QgsCoordinateReferenceSystem

come ti avevo scritto nella prima mail… la modifica da fare e’ scritta nella documentazione delle modifiche:

http://hub.qgis.org/wiki/17/API_changes_for_version_20

qui trovi:

QgsCoordinateReferenceSystem *createFromEpsg( const long theEpsg )
Use createFromOgcWmsCrs()
equals( QString theProj4String )
Removed because the same proj.4 string not necessarily means the same CRS
epsg()
There are other authorities, use authid() instead

=> usa authid()

ciao ginetto

Una questione di metodo Roberto, il GFOSS e’ pieno di lavoro volontario ritagliato dal lavoro salariato e familiare. Tutte le informazioni che cercavi erano gia’ girate in lista e erano facilmente disponibili cercando.

ti e vi chiedo di spendere una parte del vostro tempo a cercare prima in lista o nelle liste internazionali… puo’ darsi che si cerchi con le chiavi sbagliate e allora fa nulla, si arrivera’ a fare la domanda in lista, ma il piu’ delle volte le informqazioni le si trovano.

Il fatto che il codice sia libero e le liste aperte ci da maggiore responsabilita’ nel gestire il tempo collettivo.

ciao ginetto

···

2013/10/13 Geo DrinX <geodrinx@gmail.com>

Grazie Ginetto.

crs = QgsCoordinateReferenceSystem()
crs.createFromProj4(“+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs”)
True

print “EPSG ID:”, crs.authid()
EPSG ID: EPSG:4326

Ora il codice funziona, a parte che la risposta è più prolissa, e contiene (giustamente) l’autorità di riferimento.

Di nuovo grazie mille, anzi EPSG:1000 :wink:

Roberto

2013/10/12 Gino Pirelli <luipir@gmail.com>

2013/10/12 Geo DrinX <geodrinx@gmail.com>

QgsCoordinateReferenceSystem

come ti avevo scritto nella prima mail… la modifica da fare e’ scritta nella documentazione delle modifiche:

http://hub.qgis.org/wiki/17/API_changes_for_version_20

qui trovi:

QgsCoordinateReferenceSystem *createFromEpsg( const long theEpsg )
Use createFromOgcWmsCrs()
equals( QString theProj4String )
Removed because the same proj.4 string not necessarily means the same CRS
epsg()
There are other authorities, use authid() instead

=> usa authid()

ciao ginetto