[Gfoss] due problemini con postgresql-postgis

Ciao a tutti, come da titolo, ho due problemini con postgis il primo è
l'aggiornamento della colonna delle geometrie per il cambiamento di
SRID, l'importazione dello shape ha creato un vincolo che non riesco a
togliere

datageo=> UPDATE province_piemonte SET the_geom = setsrid
(the_geom,23032);ERROR: new row for relation "province_piemonte"
violates check constraint "enforce_srid_the_geom"

il secondo problema è come sottrarre da un insieme di strade quelle
che ricadono all'interno dei centri urbani, ho provato con difference
ma non riesco

CREATE TABLE nometabella AS SELECT difference (colonnageometria
strade,colonnageometria aree edificate) AS nuovageometria FROM
strade,aree edificate;

il comando è giusto?

ciao e grazie
Luca

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

Luca Delucchi ha scritto:

Ciao a tutti, come da titolo, ho due problemini con postgis il primo è
l'aggiornamento della colonna delle geometrie per il cambiamento di
SRID, l'importazione dello shape ha creato un vincolo che non riesco a
togliere

datageo=> UPDATE province_piemonte SET the_geom = setsrid
(the_geom,23032);ERROR: new row for relation "province_piemonte"
violates check constraint "enforce_srid_the_geom"

Quello che ti serve non e' setsrid ma updategeometrysrid:

UpdateGeometrySRID([<schema_name>], <table_name>, <column_name>, <srid>)

ciao
Lia

- --
Emilia Venturato
email+jabber: venturato@faunalia.it
www.faunalia.it
Tel: (+39) 347-2770007 Tel+Fax: (+39) 0587-213742
Piazza Garibaldi 5 - 56025 Pontedera (PI), Italy
http://www.faunalia.it/ev
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFHVlzAOsndmJr6cvYRAltPAJ4vgC5USKS8vYzmYUOBGaNetE5miwCfWSVb
GbM9COhIIZ0vL6laGvtfsa8=
=Kyn7
-----END PGP SIGNATURE-----

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

Luca Delucchi ha scritto:

il secondo problema è come sottrarre da un insieme di strade quelle
che ricadono all'interno dei centri urbani, ho provato con difference
ma non riesco

CREATE TABLE nometabella AS SELECT difference (colonnageometria
strade,colonnageometria aree edificate) AS nuovageometria FROM
strade,aree edificate;

il comando è giusto?

Per questo bisognerebbe sapere come sono i tuoi dati. I centri urbani
immagino che siano poligoni.
Poi immagino che tu voglia 'tagliare' i pezzi di strada che si
sovrappongono ai poligoni dell'urbano.
In questo caso penso che tu debba usare ST_Overlaps. Oppure ST_Within
per prendere quelli che cadono all'interno dei poligoni.
Prova a vedere se trovi una soluzione con queste dritte. Altrimenti
fatti risentire. Scusa ma stamani sono messa malino.
:frowning:
ciao
lia

- --
Emilia Venturato
email+jabber: venturato@faunalia.it
www.faunalia.it
Tel: (+39) 347-2770007 Tel+Fax: (+39) 0587-213742
Piazza Garibaldi 5 - 56025 Pontedera (PI), Italy
http://www.faunalia.it/ev
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFHVl5VOsndmJr6cvYRAjCtAKCVxCYvFziBqsCwfAkOqzI6CjM7NwCeMHQe
cL2LEtni+zQtJzwAZ+IcS0Y=
=sriN
-----END PGP SIGNATURE-----

2007/12/5, Emilia Venturato <venturato@faunalia.it>:

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

Luca Delucchi ha scritto:
> Ciao a tutti, come da titolo, ho due problemini con postgis il primo è
> l'aggiornamento della colonna delle geometrie per il cambiamento di
> SRID, l'importazione dello shape ha creato un vincolo che non riesco a
> togliere
>
> datageo=> UPDATE province_piemonte SET the_geom = setsrid
> (the_geom,23032);ERROR: new row for relation "province_piemonte"
> violates check constraint "enforce_srid_the_geom"

Quello che ti serve non e' setsrid ma updategeometrysrid:

UpdateGeometrySRID([<schema_name>], <table_name>, <column_name>, <srid>)

Setsrid l'avevo utilizzato per precedenti tabelle ed era andato tutto
liscio. Qual'è di preciso la differenza tra i due? comunque ci sono
riuscito grazie

ciao
Lia

ciao
Luca

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

Luca Delucchi ha scritto:

Setsrid l'avevo utilizzato per precedenti tabelle ed era andato tutto
liscio. Qual'è di preciso la differenza tra i due?

Set srid setta lo srid che vuoi tu senza aggiornare la geometrycolumn e
senza aggiornare i constraint per lo srid sulla geometria.
Se hai una tabella senza questo constraint ti funziona lo stesso pero'
poi ti risulta non aggiornato il dato nella geometrycolumn e prima o poi
ti ci riscontri :slight_smile:
Updategeometrysrid invece aggiorna tutto quanto e lascia tutto pulito.

ciao
lia

- --
Emilia Venturato
email+jabber: venturato@faunalia.it
www.faunalia.it
Tel: (+39) 347-2770007 Tel+Fax: (+39) 0587-213742
Piazza Garibaldi 5 - 56025 Pontedera (PI), Italy
http://www.faunalia.it/ev
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFHVnGYOsndmJr6cvYRAq4NAKCo7xr+ixRZagP+BCBjGMHG6NQFjgCgtfow
9gFaG5/s+gWLZnW7PF6DH1s=
=ZLZC
-----END PGP SIGNATURE-----

2007/12/5, Emilia Venturato <venturato@faunalia.it>:

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

Luca Delucchi ha scritto:
>
> il secondo problema è come sottrarre da un insieme di strade quelle
> che ricadono all'interno dei centri urbani, ho provato con difference
> ma non riesco
>
> CREATE TABLE nometabella AS SELECT difference (colonnageometria
> strade,colonnageometria aree edificate) AS nuovageometria FROM
> strade,aree edificate;
>
> il comando è giusto?
>

Per questo bisognerebbe sapere come sono i tuoi dati. I centri urbani
immagino che siano poligoni.

Giusto

Poi immagino che tu voglia 'tagliare' i pezzi di strada che si
sovrappongono ai poligoni dell'urbano.
In questo caso penso che tu debba usare ST_Overlaps. Oppure ST_Within
per prendere quelli che cadono all'interno dei poligoni.

Giusto, ma prendere le parti interne con intersection o overlaps
riesco. Io devo dividere le strade in due parti, quelle che ricadono
all'interno e ci sono riuscito e quelle che ricadono all'esterno che
non riesco a fare. Riesco a sottrarre le parti interne ai centri dalle
strade intere?

Prova a vedere se trovi una soluzione con queste dritte. Altrimenti
fatti risentire. Scusa ma stamani sono messa malino.
:frowning:

Ci sto provando... grazie mille; comunque fai quello che devi fare non
è urgentissimo

ciao
lia

ciao
Luca

Luca Delucchi ha scritto:

Giusto, ma prendere le parti interne con intersection o overlaps
riesco. Io devo dividere le strade in due parti, quelle che ricadono
all'interno e ci sono riuscito e quelle che ricadono all'esterno che
non riesco a fare. Riesco a sottrarre le parti interne ai centri dalle
strade intere?

penso che cio' che ti serve sia:

st_within
not st_within

ciao
lia

--
Emilia Venturato
email+jabber: venturato@faunalia.it
www.faunalia.it
Tel: (+39) 347-2770007 Tel+Fax: (+39) 0587-213742
Piazza Garibaldi 5 - 56025 Pontedera (PI), Italy
http://www.faunalia.it/ev

Il 06/12/07, Emilia Venturato<venturato@faunalia.it> ha scritto:

Luca Delucchi ha scritto:
>
> Giusto, ma prendere le parti interne con intersection o overlaps
> riesco. Io devo dividere le strade in due parti, quelle che ricadono
> all'interno e ci sono riuscito e quelle che ricadono all'esterno che
> non riesco a fare. Riesco a sottrarre le parti interne ai centri dalle
> strade intere?

penso che cio' che ti serve sia:

st_within
not st_within

Allora dopo molte prove sono riuscito solo con Intersection, perchè
gli altri comandi mi restituiscono solo TRUE o FALSE e non le
geometrie. sbaglio io o è così?
L'unico problema di Intersection è che mi vengono restituiti dei
valori che poi non mi danno la possibilità di lavorarci, tipo
calcolare il punto iniziale e quello finale.

"0105000020E61000000500000001020000000D00000052F11D8FDC401D40D7331B3FBF60464024DF735164411D40001EDFE69E6046402FA26C8FB1421D4069A22A4E6B604640AEF023B72D431D402C7E78D747604640778FB89272431D4007292A4E2E604640033F419F72441D40BB5791FDFE5F464096928181BE441D408DF9BFECB85F4640D7DF4C1E7E451D409ACD5AD2815F46403FCAD70D61461D4088967EA95D5F4640BD9C95634E471D40EE35DF74375F4640CF65FF182C481D40FFE1B642005F46408DD2A4A3A54A1D40E35417CC205E464051058EE99A4D1D40BA6335D6135D46400102000000200000005DEA648107401D40B3F70DD1F860464068E129BC29401D401A4A757A1061464024B3BECC86401D40161E5B7E2B614640DBBDEF33AF411D40D8AFCC244F614640136A31C72D421D408C5FAD4A5A6146406BBBE331D9421D4072260D036C614640E3651D0BD3431D407434264D82614640A14C3D4352441D402CFA57F49861464004604369F7441D40EE5D1530A96146404811FC7E39461D40531BBA43C2614640937E946E6F481D401019DBCDE0614640837FED52CD491D4012017D53F4614640345C9DB1254B1D406932271E03624640BA9DAE53C34C1D40FF224837136246402CA6E801424F1D40774A92DC15624640317812BD61511D409138E6102262464045C23461D8531D400A025FE32A624640EE1749D2F9551D401A6EF0B72F624640E6C4ED93F1571D40F80C72922E62464015D83AAFC0581D40A5795B7035624640376749AEAA591D403332E6094962464052A59762A15A1D4071A76B055F624640C8FCA9AC875B1D4026AE34627462464003EA24624C5C1D409978EABF8B6246400D00C5ACFB5C1D40CEE277DCA96246402CC1D24CC85D1D408A84FEA2BB62464099CADD7A795F1D408F242088CD6246404357A3718F601D40D09B2DD4EB6246409B5751A52C611D40EEFFBD3C02634640790A1F98BB611D40DDA6640B1D63464015C8B051A1631D4099730019316346402925DD0DEF631D40F27FEA553463464001020000004D00000002FB67FF931D1D402D456CB2DF574640024A4A68971D1D40B28011B4DF5746403C0EAC6F481E1D40DF501164F45746407299584DF61E1D40AEE5797B085846407E40E1DA89201D40AE763084165846408F99CA3BB4211D4058DB74B221584640322D111A13231D40F4A8F9BE2E584640FAA65D3E48241D40E93D05683658464041AC8B64F8251D404266A58149584640EF3307F962271D404344B8105D584640E561D894B9281D40D56B1B2D71584640AD82D8208A2A1D4095BCE148875846400EB9AAA1D82A1D40B6966C2199584640484C41FC152C1D403BCCA12DA85846406965EC75912D1D40A9205973C858464061DAC7DAEC2D1D40A1AE90CBDB5846400523FD2D8E2E1D400F6F9634ED584640BF541663862F1D409FFB61F1FA584640A2D9BF579D301D40772AD272F65846400C8FECC286311D406B5FC79FEE584640BAD8B07910321D40B3403DE5F3584640FE8A619D65321D40441DC8C0055946405EE68140CE321D402BA5301F19594640655AEAC497331D40B15CCA611A5946400F77F38355341D40B19C294407594640557831623A351D401965FFBD045946407F311FBE24351D40ADB0D9871A5946400A539C4198341D406D6A8F362F5946404D922CB02F351D401993D371325946400205CFC6CA351D401C257B0C26594640538CA9DD3E361D409BC125CA245946406FC351F522361D40DCFF7117395946404D754D2A93351D40685D9EC44D594640CC1F3B623D351D404608FCE15A59464098CB933DA8351D4090DFDDD064594640F281EFF65A361D404A7E2366565946409E7F518114371D402BEDD14455594640FAC5D9C26C371D40C78E450468594640C5EF232BC2361D40E1AD93F56F594640D6089032A9351D4054AE99017D594640AD29E139F5341D4030EDFABA90594640E1B004DBBE341D40D8DAA9FBA45946400C415FE883351D40B4ACCB3FAB594640039FEEFE93361D40B06C92EBA7594640974BE5C18F371D403FC5369EA6594640F862E28EAA371D409344DF82C15946408F6B5AE322371D40899B5EDFDD59464046B730E270371D40BBFA8313F2594640A648D0C21D381D407091BEB8FC594640C8598E7E5F381D4032365574F05946401B43626483381D40073C416DE45946409011139A7F381D405BFE5053D85946405228C9CF3A391D403700CD6FEC594640B4B8D0A4D3391D404A18B816065A4640081AE5F5493A1D4075A80DDF255A4640093C17BCB73A1D402BCB01BD3F5A464051A5C3B0C03B1D40850FA0125B5A464001C05515D93C1D406036FDFE6C5A4640D7534A58CE3D1D40221817B4875A464052869D36443F1D40A64ED893B25A4640AE223C7473401D409F2F102DD45A4640488DFED1F6401D40E86826B5E65A464066AB5595C5411D4085100354FC5A4640F69C63EA29441D40DF2DDF12435B4640097595AC6A451D409C0DFC69525B4640B012745CAF461D405D2C331B5F5B4640F68CE04586471D403AFE3B406E5B4640C8FDACFD11481D4036761C6C795B46409941F9C251481D40EFBF2DDD835B46404682B10603491D403050EDB3A65B464059175104BE491D405113C371CA5B4640D70E11E90B4A1D40952ABBB0ED5B46402C3E538A77491D40227A07BD325C4640B90297AB5E491D401E8C31AE565C46402AFA559E59491D40DBB2F27F6C5C464021EC781464491D40CE7CB662A35C46402C4ABE5867491D4014677A75CE5C464001020000000200000052F11D8FDC401D40D7331B3FBF6046405DEA648107401D40B3F70DD1F86046400102000000110000005DEA648107401D40B3F70DD1F8604640DEAC50F5613F1D40E10C227131614640C985CAE6FB3E1D408E2027364B614640C7505F95513E1D40B624BC058A61464018582372083E1D401E944828D2614640F6ACBCBBF53C1D40D14BC5D4FB614640E5ABA2403D3B1D40C3B01615266246406A9741E98D3A1D4073834B7C41624640D992421A3C3A1D404166B18559624640BCD24A2076391D40A1E0B2AE80624640279BA68424381D40402C6DF1A9624640BF36DF9DBA361D40D110FFB7C9624640EE7BA0E07D351D40E0D964C0FC6246401BD11836CC341D40999F33E221634640746DAEC986331D4083FCA5C579634640797321D1AD321D40C5367015B9634640562E4E2452321D403F77BCE3C8634640";"27";"4";"0101000020E610000052F11D8FDC401D40D7331B3FBF604640";"0101000020E610000051058EE99A4D1D40BA6335D6135D4640";"17045.3";"3334.82";""
"0107000020E610000000000000";"40";"5";"";"";"0";"";""

Come da esempio la prima colonna che è la geometria e nel secondo caso
è troncata...come mai?

ciao
lia

ciao
Luca