Re: [Gfoss] SQL ed aggiornamento delle geometrie. Più una domanda un po' strana!
Ciao Amedeo, per la domanda 2 ho risolto con un plugin apposito che non conoscevo, si chiama Mask e fa quello che mi serve. Non ho verificato ma a memoria mi pare che Salvatore con i filtri mascherava parte dei dati. Il giorno 23 febbraio 2018 15:46, Amedeo Fadini ha scritto: > per la domanda 2 puoi stilizzare il vettore di copertura in base alla > variabile @atlas feature... > > totò ha un tutorial credo... > > Il 23/feb/2018 10:25 AM, "Massimiliano Moraca" < > massimilianomor...@gmail.com> ha scritto: > >> Giusto! Non me ne ero accorto ed infatti funziona :) >> Lo applicherò alle tabelle del progetto. >> Grazie :) >> >> Il giorno 22 febbraio 2018 23:06, Sandro Santilli ha >> scritto: >> >> > On Thu, Feb 22, 2018 at 09:22:34PM +0100, Massimiliano Moraca wrote: >> > > Fatto ma non va. >> > > >> > > *UPDATE 4* >> > > >> > > *Query returned successfully in 179 msec.* >> > > >> > > Mi da questo messaggio ma la geometria del vettore resta la stessa >> > >> > Rileggendo la query mi sono accorto che sta usando la stessa tabella >> > target come sorgente per il dissolve, e' ovviamente sbagliato. Devi >> > adattarlo alla tua situazione. Non e' "update_dissolve" a contenere >> > le geometrie non-dissolte, giusto ? Quindi in >> > "nuova_tabella_dissolvenza" devi selezionare FROM la tabella giusta... >> > >> >WITH nuova_tabella_dissolvenza AS ( >> > SELECT ST_Union(geom) as geom, tipo FROM >> > :tabella_sorgente_giusta: GROUP BY tipo >> >) >> >UPDATE update_dissolve o >> > SET o.geom = n.geom >> >FROM nuova_tabella_dissolvenza n >> >WHERE o.tipo = n.tipo; >> > >> > --strk; >> > >> ___ >> 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. >> 796 iscritti al 28/12/2017 > > ___ 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. 796 iscritti al 28/12/2017
Re: [Gfoss] SQL ed aggiornamento delle geometrie. Più una domanda un po' strana!
per la domanda 2 puoi stilizzare il vettore di copertura in base alla variabile @atlas feature... totò ha un tutorial credo... Il 23/feb/2018 10:25 AM, "Massimiliano Moraca" ha scritto: > Giusto! Non me ne ero accorto ed infatti funziona :) > Lo applicherò alle tabelle del progetto. > Grazie :) > > Il giorno 22 febbraio 2018 23:06, Sandro Santilli ha > scritto: > > > On Thu, Feb 22, 2018 at 09:22:34PM +0100, Massimiliano Moraca wrote: > > > Fatto ma non va. > > > > > > *UPDATE 4* > > > > > > *Query returned successfully in 179 msec.* > > > > > > Mi da questo messaggio ma la geometria del vettore resta la stessa > > > > Rileggendo la query mi sono accorto che sta usando la stessa tabella > > target come sorgente per il dissolve, e' ovviamente sbagliato. Devi > > adattarlo alla tua situazione. Non e' "update_dissolve" a contenere > > le geometrie non-dissolte, giusto ? Quindi in > > "nuova_tabella_dissolvenza" devi selezionare FROM la tabella giusta... > > > >WITH nuova_tabella_dissolvenza AS ( > > SELECT ST_Union(geom) as geom, tipo FROM > > :tabella_sorgente_giusta: GROUP BY tipo > >) > >UPDATE update_dissolve o > > SET o.geom = n.geom > >FROM nuova_tabella_dissolvenza n > >WHERE o.tipo = n.tipo; > > > > --strk; > > > ___ > 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. > 796 iscritti al 28/12/2017 ___ 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. 796 iscritti al 28/12/2017
Re: [Gfoss] SQL ed aggiornamento delle geometrie. Più una domanda un po' strana!
Giusto! Non me ne ero accorto ed infatti funziona :) Lo applicherò alle tabelle del progetto. Grazie :) Il giorno 22 febbraio 2018 23:06, Sandro Santilli ha scritto: > On Thu, Feb 22, 2018 at 09:22:34PM +0100, Massimiliano Moraca wrote: > > Fatto ma non va. > > > > *UPDATE 4* > > > > *Query returned successfully in 179 msec.* > > > > Mi da questo messaggio ma la geometria del vettore resta la stessa > > Rileggendo la query mi sono accorto che sta usando la stessa tabella > target come sorgente per il dissolve, e' ovviamente sbagliato. Devi > adattarlo alla tua situazione. Non e' "update_dissolve" a contenere > le geometrie non-dissolte, giusto ? Quindi in > "nuova_tabella_dissolvenza" devi selezionare FROM la tabella giusta... > >WITH nuova_tabella_dissolvenza AS ( > SELECT ST_Union(geom) as geom, tipo FROM > :tabella_sorgente_giusta: GROUP BY tipo >) >UPDATE update_dissolve o > SET o.geom = n.geom >FROM nuova_tabella_dissolvenza n >WHERE o.tipo = n.tipo; > > --strk; > ___ 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. 796 iscritti al 28/12/2017
Re: [Gfoss] SQL ed aggiornamento delle geometrie. Più una domanda un po' strana!
On Thu, Feb 22, 2018 at 09:22:34PM +0100, Massimiliano Moraca wrote: > Fatto ma non va. > > *UPDATE 4* > > *Query returned successfully in 179 msec.* > > Mi da questo messaggio ma la geometria del vettore resta la stessa Rileggendo la query mi sono accorto che sta usando la stessa tabella target come sorgente per il dissolve, e' ovviamente sbagliato. Devi adattarlo alla tua situazione. Non e' "update_dissolve" a contenere le geometrie non-dissolte, giusto ? Quindi in "nuova_tabella_dissolvenza" devi selezionare FROM la tabella giusta... WITH nuova_tabella_dissolvenza AS ( SELECT ST_Union(geom) as geom, tipo FROM :tabella_sorgente_giusta: GROUP BY tipo ) UPDATE update_dissolve o SET o.geom = n.geom FROM nuova_tabella_dissolvenza n WHERE o.tipo = n.tipo; --strk; ___ 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. 796 iscritti al 28/12/2017
Re: [Gfoss] SQL ed aggiornamento delle geometrie. Più una domanda un po' strana!
Fatto ma non va. *UPDATE 4* *Query returned successfully in 179 msec.* Mi da questo messaggio ma la geometria del vettore resta la stessa Il giorno 22 febbraio 2018 20:44, Sandro Santilli ha scritto: > On Thu, Feb 22, 2018 at 06:46:33PM +0100, Massimiliano Moraca wrote: > > Si i tipi sono gli stessi > > > > Ho provato con la tua indicazione creando un vettore e riproducendo il > caso > > mio. Lo script č questo: > > > > * WITH nuova_tabella_dissolvenza AS (* > > *SELECT ST_Union(geom) as geom, tipo FROM* > > *update_dissolve GROUP BY tipo* > > * )* > > * UPDATE update_dissolve o* > > *SET o.geom = n.geom* > > * FROM nuova_tabella_dissolvenza n* > > * WHERE o.tipo = n.tipo;* > > > > Mi compare questo errore perň: > > > > *ERROR: ERRORE: la colonna "o" della relazione "update_dissolve" non > > esiste* > > *LINE 6: SET o.geom = n.geom* > > *^* > > Errore mio, togli il prefisso "o.": > >SET geom = n.geom > > --strk; > ___ 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. 796 iscritti al 28/12/2017
Re: [Gfoss] SQL ed aggiornamento delle geometrie. Più una domanda un po' strana!
On Thu, Feb 22, 2018 at 06:46:33PM +0100, Massimiliano Moraca wrote: > Si i tipi sono gli stessi > > Ho provato con la tua indicazione creando un vettore e riproducendo il caso > mio. Lo script è questo: > > * WITH nuova_tabella_dissolvenza AS (* > *SELECT ST_Union(geom) as geom, tipo FROM* > *update_dissolve GROUP BY tipo* > * )* > * UPDATE update_dissolve o* > *SET o.geom = n.geom* > * FROM nuova_tabella_dissolvenza n* > * WHERE o.tipo = n.tipo;* > > Mi compare questo errore però: > > *ERROR: ERRORE: la colonna "o" della relazione "update_dissolve" non > esiste* > *LINE 6: SET o.geom = n.geom* > *^* Errore mio, togli il prefisso "o.": SET geom = n.geom --strk; ___ 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. 796 iscritti al 28/12/2017
Re: [Gfoss] SQL ed aggiornamento delle geometrie. Più una domanda un po' strana!
Per la domanda 2 credo di aver risolto https://github.com/aeag/mask/wiki Il giorno 22 febbraio 2018 18:46, Massimiliano Moraca < massimilianomor...@gmail.com> ha scritto: > Si i tipi sono gli stessi > > Ho provato con la tua indicazione creando un vettore e riproducendo il > caso mio. Lo script è questo: > > * WITH nuova_tabella_dissolvenza AS (* > *SELECT ST_Union(geom) as geom, tipo FROM* > *update_dissolve GROUP BY tipo* > * )* > * UPDATE update_dissolve o* > *SET o.geom = n.geom* > * FROM nuova_tabella_dissolvenza n* > * WHERE o.tipo = n.tipo;* > > Mi compare questo errore però: > > *ERROR: ERRORE: la colonna "o" della relazione "update_dissolve" non > esiste* > *LINE 6: SET o.geom = n.geom* > *^* > > > *SQL state: 42703* > *Character: 157* > > > > Il giorno 22 febbraio 2018 17:56, Sandro Santilli ha > scritto: > >> On Thu, Feb 22, 2018 at 08:57:37AM -0700, Massimiliano Moraca wrote: >> >> > /UPDATE tabella_dissolvenza >> > SET gemetry = (SELECT ST_Union(geometry) as gemetry, tipo FROM >> > tabella_dissolvenza GROUP BY tipo);/ >> >> > >> > Giustamente mi compare questo messaggio /ERRORE: la sottoquery deve >> > restituire solo una colonna/ Il messaggio è chiarissimo e ci sarei >> dovuto >> > arrivare prima. >> > >> > La mia domanda è(finalmente!): c'è un modo per aggiornare in automatico >> le >> > geometrie del vettore in cui ho applicato la dissolvenza o mi tocca >> rifare >> > le tabella(che tramuterei in view a questo punto)? >> >> Se il numero dei tipi e' lo stesso di prima puoi aggiornare >> la tabella cosi': >> >> WITH nuova_tabella_dissolvenza AS ( >> SELECT ST_Union(geometry) as gemetry, tipo FROM >> tabella_dissolvenza GROUP BY tipo >> ) >> UPDATE tabella_dissolvenza o >> SET o.geometry = n.geometry >> FROM nuova_tabella_dissolvenza n >> WHERE o.tipo = n.tipo. >> >> PostgreSQL supporta le "materialized view" se vuoi tramutare la >> tabella in qualcosa di piu' stabile di una view ma piu' facilmente >> aggiornabile di una tabella. Occhio che usare ST_Union in una view >> puo' precluderti la possibilita' di aggiornare PostGIS nel caso >> in cui l'aggregato ST_Union cambi il nome di un attributo o qualcosa >> di simile. >> >> --strk; >> > > ___ 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. 796 iscritti al 28/12/2017
Re: [Gfoss] SQL ed aggiornamento delle geometrie. Più una domanda un po' strana!
On Thu, Feb 22, 2018 at 08:57:37AM -0700, Massimiliano Moraca wrote: > /UPDATE tabella_dissolvenza > SET gemetry = (SELECT ST_Union(geometry) as gemetry, tipo FROM > tabella_dissolvenza GROUP BY tipo);/ > > Giustamente mi compare questo messaggio /ERRORE: la sottoquery deve > restituire solo una colonna/ Il messaggio è chiarissimo e ci sarei dovuto > arrivare prima. > > La mia domanda è(finalmente!): c'è un modo per aggiornare in automatico le > geometrie del vettore in cui ho applicato la dissolvenza o mi tocca rifare > le tabella(che tramuterei in view a questo punto)? Se il numero dei tipi e' lo stesso di prima puoi aggiornare la tabella cosi': WITH nuova_tabella_dissolvenza AS ( SELECT ST_Union(geometry) as gemetry, tipo FROM tabella_dissolvenza GROUP BY tipo ) UPDATE tabella_dissolvenza o SET o.geometry = n.geometry FROM nuova_tabella_dissolvenza n WHERE o.tipo = n.tipo. PostgreSQL supporta le "materialized view" se vuoi tramutare la tabella in qualcosa di piu' stabile di una view ma piu' facilmente aggiornabile di una tabella. Occhio che usare ST_Union in una view puo' precluderti la possibilita' di aggiornare PostGIS nel caso in cui l'aggregato ST_Union cambi il nome di un attributo o qualcosa di simile. --strk; ___ 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. 796 iscritti al 28/12/2017
Re: [Gfoss] SQL ed aggiornamento delle geometrie. Più una domanda un po' strana!
Si i tipi sono gli stessi Ho provato con la tua indicazione creando un vettore e riproducendo il caso mio. Lo script è questo: * WITH nuova_tabella_dissolvenza AS (* *SELECT ST_Union(geom) as geom, tipo FROM* *update_dissolve GROUP BY tipo* * )* * UPDATE update_dissolve o* *SET o.geom = n.geom* * FROM nuova_tabella_dissolvenza n* * WHERE o.tipo = n.tipo;* Mi compare questo errore però: *ERROR: ERRORE: la colonna "o" della relazione "update_dissolve" non esiste* *LINE 6: SET o.geom = n.geom* *^* *SQL state: 42703* *Character: 157* Il giorno 22 febbraio 2018 17:56, Sandro Santilli ha scritto: > On Thu, Feb 22, 2018 at 08:57:37AM -0700, Massimiliano Moraca wrote: > > > /UPDATE tabella_dissolvenza > > SET gemetry = (SELECT ST_Union(geometry) as gemetry, tipo FROM > > tabella_dissolvenza GROUP BY tipo);/ > > > > > Giustamente mi compare questo messaggio /ERRORE: la sottoquery deve > > restituire solo una colonna/ Il messaggio è chiarissimo e ci sarei dovuto > > arrivare prima. > > > > La mia domanda è(finalmente!): c'è un modo per aggiornare in automatico > le > > geometrie del vettore in cui ho applicato la dissolvenza o mi tocca > rifare > > le tabella(che tramuterei in view a questo punto)? > > Se il numero dei tipi e' lo stesso di prima puoi aggiornare > la tabella cosi': > > WITH nuova_tabella_dissolvenza AS ( > SELECT ST_Union(geometry) as gemetry, tipo FROM > tabella_dissolvenza GROUP BY tipo > ) > UPDATE tabella_dissolvenza o > SET o.geometry = n.geometry > FROM nuova_tabella_dissolvenza n > WHERE o.tipo = n.tipo. > > PostgreSQL supporta le "materialized view" se vuoi tramutare la > tabella in qualcosa di piu' stabile di una view ma piu' facilmente > aggiornabile di una tabella. Occhio che usare ST_Union in una view > puo' precluderti la possibilita' di aggiornare PostGIS nel caso > in cui l'aggregato ST_Union cambi il nome di un attributo o qualcosa > di simile. > > --strk; > ___ 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. 796 iscritti al 28/12/2017