[Gfoss] postgis e srid

Voglio sostituire le geometrie di una tabella postgis con altre che provengono da uno shapefile.
La tabella postgres non ha uno srid determinato, anzi, forza lo srid così

CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = (-1))

Convertendo lo shapefile in una tabella postgis (tramite Open Jump) temporanea i poligoni passano con uno srid = 0. Quando faccio un join tra le due tabelle per fare un UPDATE sulla geometria postgis mi dà errore, non accettando lo srid.
Premesso che al momento non posso cambiare le caratteristiche della tabella di destinazione, e devo mantenere questo srid=-1, come posso fare? E che differenza c’è tra srid = 0 e srid = -1?

Grazie

Pia Miccoli
tecnico Gis
Ufficio Sic
Comune di Fano
tel. 0721-887746


Comune di Fano - www.comune.fano.ps.it

Questo messaggio è destinato unicamente alle persone sopra indicate e le informazioni contenute sono da considerarsi strettamente riservate. Se avete ricevuto questo messaggio per errore, siete pregati di rispedirlo al mittente. Grazie.

On 16/12/2011 12:57, PiaMic wrote:

Voglio sostituire le geometrie di una tabella postgis con altre che provengono da uno shapefile.
La tabella postgres non ha uno srid determinato, anzi, forza lo srid così

CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = (-1))

Convertendo lo shapefile in una tabella postgis (tramite Open Jump) temporanea i poligoni passano con uno srid = 0. Quando faccio un join tra le due tabelle per fare un UPDATE sulla geometria postgis mi dà errore, non accettando lo srid.
Premesso che al momento non posso cambiare le caratteristiche della tabella di destinazione, e devo mantenere questo srid=-1, come posso fare? E che differenza c'è tra srid = 0 e srid = -1?

Prima ripulite la tabella con DELETE FROM nometabella e poi usate il plugin di QGis per caricare lo shapefile impostando lo SRID che vi serve.

Saluti
Luca

--
Luca Casagrande
"I love it when a plan comes together."

On 16/12/2011 12:57, PiaMic wrote:

Voglio sostituire le geometrie di una tabella postgis con altre che provengono da uno shapefile.
La tabella postgres non ha uno srid determinato, anzi, forza lo srid così

CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = (-1))

Convertendo lo shapefile in una tabella postgis (tramite Open Jump) temporanea i poligoni passano con uno srid = 0. Quando faccio un join tra le due tabelle per fare un UPDATE sulla geometria postgis mi dà errore, non accettando lo srid.
Premesso che al momento non posso cambiare le caratteristiche della tabella di destinazione, e devo mantenere questo srid=-1, come posso fare? E che differenza c'è tra srid = 0 e srid = -1?

Ah scusate, non avevo capito che dovevate cambiare solo le geometrie.
Potete usare comunque QGis per creare la tabella temporanea impostando. tramite interfaccia, lo SRID.

Per la differenza tra 0 e -1 credo che con -1 si indichi uno SRID non conosciuto.

Luca

--
Luca Casagrande
"I love it when a plan comes together."

Ciao Pia,

-1 è il valore che PostGIS utilizza per indicare SRID non definito,
ovvero coordinate cartesiane non georiferite. In realtà capita spesso di
ricevere shape in Gauss-Boaga o UTM senza informazioni sul sistema di
riferimento utilizzato (file prj o codice epsg), se le carichi in PG
probabilmente avrenno SRID -1 (o 0, se carichi il dato con un client che
lo imposta in questo modo).

Puoi usare la funzione ST_SetSRID(geom) di postgis per cambiare lo SRID
di una geometria (senza riproiettarla, ne imposta solo lo srid),
direttamente nella tua update:

update tabella inner join tabella2 ... set tabella.geom =
ST_SetSRID(tabella2.geom, -1);

Con la stessa tecnica puoi assegnare lo srid giusto alla tua tabella se
ti sei accorta di averla caricata con SRID -1. Ovviamente devi prima
eliminare il constraint sullo srid e poi ricrearlo. Meglio ancora guarda
la funzione UpdateGeometrySRID() che sistema tutti i metadati oltre allo
SRID delle geometrie.

Buon lavoro

Sig

Il giorno ven, 16/12/2011 alle 13.32 +0100, Luca Casagrande ha scritto:

On 16/12/2011 12:57, PiaMic wrote:
> Voglio sostituire le geometrie di una tabella postgis con altre che
> provengono da uno shapefile.
> La tabella postgres non ha uno srid determinato, anzi, forza lo srid
> così
>
> CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = (-1))
>
> Convertendo lo shapefile in una tabella postgis (tramite Open Jump)
> temporanea i poligoni passano con uno srid = 0. Quando faccio un
> join tra le due tabelle per fare un UPDATE sulla geometria postgis
> mi dà errore, non accettando lo srid.
> Premesso che al momento non posso cambiare le caratteristiche della
> tabella di destinazione, e devo mantenere questo srid=-1, come posso
> fare? E che differenza c'è tra srid = 0 e srid = -1?
>

Prima ripulite la tabella con DELETE FROM nometabella e poi usate il
plugin di QGis per caricare lo shapefile impostando lo SRID che vi serve.

Saluti
Luca

--
Luca Casagrande
"I love it when a plan comes together."

_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
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.
540 iscritti al 4.11.2011

_____________
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, Dec 16, 2011 at 12:57:34PM +0100, PiaMic wrote:

Voglio sostituire le geometrie di una tabella postgis con altre che provengono da uno shapefile.
La tabella postgres non ha uno srid determinato, anzi, forza lo srid così

CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = (-1))

Convertendo lo shapefile in una tabella postgis (tramite Open Jump) temporanea i poligoni passano con uno srid = 0. Quando faccio un join tra le due tabelle per fare un UPDATE sulla geometria postgis mi dà errore, non accettando lo srid.
Premesso che al momento non posso cambiare le caratteristiche della tabella di destinazione, e devo mantenere questo srid=-1, come posso fare? E che differenza c'è tra srid = 0 e srid = -1?

SRID <= 0 equivale a "non so".
Il valore ufficiale di questo "non so" e' sempre stato -1.
In PostGIS-2.0 diventera' 0.

Che versione di PostGIS stai usando, e che versione di OpenJump ?
Perche' non puoi cambiare le caratteristiche della tabella di
destinazione ? "non so" non e' un buon valore di SRID ...

--strk;

  ,------o-.
  | __/ | Thank you for PostGIS-2.0 Topology !
  | / 2.0 | http://www.pledgebank.com/postgistopology
  `-o------'