Vorrei riuscire a creare una nuova tabella estrapolando i dati,
all'interno di una determinata area, da tabelle postgis create
utilizzando osm2pqsql, del database italiano di osm.
Primo problema che ho, e che per ora è stato risolto in modo abbastanza
artigianale, è la ricerca delle coordinate per la bounding box, ho
risolto guardando le coordinate su informationfreeway e segnandole su un
editor; esiste qualcosa di più serio/semplice/efficace.
Secondo problema è su come realizzare la bounding box su postgis, ho
cercato un po' sul manuale ma non ho capito bene cosa usare...cercando
su internet ho trovato questo comando ma non sono sicuro che mi
restituisca quello che voglio...
geometry_field &&GeometryFromText('BOX3D(189858.0 746543.0,195858.0
750543.0)'::box3d,-1)
grazie
Luca
Luca Delucchi ha scritto:
Secondo problema è su come realizzare la bounding box su postgis, ho
cercato un po' sul manuale ma non ho capito bene cosa usare...
Dipende da cosa vuoi fare con la bounding box.
Comunque di funzioni ce ne sono varie tra cui penso possano servirti queste:
ST_box2d(geometry)
Returns a BOX2D representing the maximum extents of the geometry.
ST_expand(geometry, float)
This function returns a bounding box expanded in all directions from the bounding box of the input geometry, by an amount specified in the second argument. Very useful for distance() queries, to add an index filter to the query.
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 giorno mar, 27/05/2008 alle 08.23 +0200, Emilia Venturato ha scritto:
Luca Delucchi ha scritto:
> Secondo problema è su come realizzare la bounding box su postgis, ho
> cercato un po' sul manuale ma non ho capito bene cosa usare...
Dipende da cosa vuoi fare con la bounding box.
Voglio estrapolare i valori di una tabella all'interno della bounding
box
Comunque di funzioni ce ne sono varie tra cui penso possano servirti queste:
ST_box2d(geometry)
Returns a BOX2D representing the maximum extents of the geometry.
ST_expand(geometry, float)
This function returns a bounding box expanded in all directions
from the bounding box of the input geometry, by an amount specified in
the second argument. Very useful for distance() queries, to add an index
filter to the query.
i comandi li avevo visti, più che altro non capisco come inserire i
valori della bounding box. Potrebbe essere anche SnapToGrid(geometry,
originX, originY, sizeX, sizeY) o sbaglio?
Il comando dovrebbe essere qualcosa del genere
CREATE TABLE nometabella AS SELECT * FROM tabella WHERE .....
ciao
lia
ciao
Luca
Luca Delucchi ha scritto:
Voglio estrapolare i valori di una tabella all'interno della bounding
box
Non ho chiara la tua domanda... cosa intendi con 'estrapolare i valori di una tabella all'interno della bounding box'?
Prova a farci un esempio.
ST_expand(geometry, float)
This function returns a bounding box expanded in all directions from the bounding box of the input geometry, by an amount specified in the second argument. Very useful for distance() queries, to add an index filter to the query.
i comandi li avevo visti, più che altro non capisco come inserire i
valori della bounding box. Potrebbe essere anche SnapToGrid(geometry,
originX, originY, sizeX, sizeY) o sbaglio?
Non ho capito, vuoi esplorare nella bounding box intorno ad una geometria o in una specifica area di cui hai le coordinate?
Perche', per esempio, st_expand ti fa una bounding box intorno alla tua geometria, quella che sia, estesa per un tot (decimale) che vuoi tu.
Tipo:
select st_expand(the_geom, 100.00)
ti considera una bounding box intorno alla tua geometria di 100 metri (in gauss boaga o in sistemi di coordinate che usano come unita' di misura il metro).
snap2grid ti 'snappa' alla griglia che gli dai, non e' la stessa cosa di una bounding box, ammesso che io abbia capito cosa vuoi fare.
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 giorno gio, 29/05/2008 alle 08.06 +0200, Emilia Venturato ha scritto:
Luca Delucchi ha scritto:
>
> Voglio estrapolare i valori di una tabella all'interno della bounding
> box
Non ho chiara la tua domanda... cosa intendi con 'estrapolare i valori
di una tabella all'interno della bounding box'?
Prova a farci un esempio.
Io ho una tabella con tutti i dati lineari di osm, io vorrei crearne una
nuova con i dati solo del promontorio di Portofino
ciao
Lia
ciao
Luca
Luca Delucchi wrote:
Il giorno gio, 29/05/2008 alle 08.06 +0200, Emilia Venturato ha scritto:
Luca Delucchi ha scritto:
>
> Voglio estrapolare i valori di una tabella all'interno della bounding
> box
Non ho chiara la tua domanda... cosa intendi con 'estrapolare i valori
di una tabella all'interno della bounding box'?
Prova a farci un esempio.
Io ho una tabella con tutti i dati lineari di osm, io vorrei crearne una
nuova con i dati solo del promontorio di Portofino
ciao
Lia
ciao
Luca
_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
Gfoss@faunalia.com
http://www.faunalia.com/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
Prima soluzione:
create table osm_portofino with oids as
select the_geom from tabella_con_tutti_i_dati
where the_geom && SetSRID('BOX3D(xmin ymin,xmax ymax)'::box3d,23033);
Seconda soluzione (se hai a disposizione i limiti dell'area di Portofino
come shp o tabella):
create table test1 with oids as
select intersection(r.the_geom, l.the_geom) as geometry,
r.numero, r.tipo, r.classe >>>>>>>>>>>>>>>>>>tutti i campi della tabella "r"
che ti servono
from table1 as r, table2 as l
where r.the_geom && l.the_geom
and intersects(r.the_geom, l.the_geom)
and l.comune ='Portofino';
Fammi sapere.....ho scritto con fretta!
Ciao
-----
Salvatore Larosa
GPG: 0xE504BBE2 (FP: D9B2 CA87 81CD 1B91 E24D 3B42 D0F7 FA01 E504 BBE2)
--
View this message in context: http://www.nabble.com/bounding-box-postgis-tp17480582p17530718.html
Sent from the Gfoss mailing list archive at Nabble.com.
Visto che me ne date l'occasione, potrei chiedervi di chiarirmi una
cosa riguardo la seguente query di es. di Salvatore?
create table test1 with oids as
select intersection(r.the_geom, l.the_geom) as geometry,
r.numero, r.tipo, r.classe >>>>>>>>>>>>>>>>>>tutti i campi della tabella "r"
che ti servono
from table1 as r, table2 as l
where r.the_geom && l.the_geom
and intersects(r.the_geom, l.the_geom)
and l.comune ='Portofino';
Si seleziona l'intersezione, ok. Poi però si danno anche due clausole
WHERE: r.the_geom && l.the_geom e, di nuovo, un'intersezione. Domande:
1 - perché se si chiede un'intersezione serve ripetere l'operatore
anche dentro WHERE?
2 - perché serve anche l'operatore di overlap?
So che si fa così, ma non ho mai avuto il tempo di chiarirmi il motivi...
Il giorno gio, 29/05/2008 alle 02.13 -0700, Salvator*eL*arosa ha
scritto:
Prima soluzione:
create table osm_portofino with oids as
select the_geom from tabella_con_tutti_i_dati
where the_geom && SetSRID('BOX3D(xmin ymin,xmax ymax)'::box3d,23033);
Ecco è questo che cercavo...l'ho provato è funziona benissimo!
Seconda soluzione (se hai a disposizione i limiti dell'area di Portofino
come shp o tabella):
create table test1 with oids as
select intersection(r.the_geom, l.the_geom) as geometry,
r.numero, r.tipo, r.classe >>>>>>>>>>>>>>>>>>tutti i campi della tabella "r"
che ti servono
from table1 as r, table2 as l
where r.the_geom && l.the_geom
and intersects(r.the_geom, l.the_geom)
and l.comune ='Portofino';
mancandomi i dati non potevo seguire questa soluzione che conoscevo 
Fammi sapere.....ho scritto con fretta!
Ciao
-----
Salvatore Larosa
GPG: 0xE504BBE2 (FP: D9B2 CA87 81CD 1B91 E24D 3B42 D0F7 FA01 E504 BBE2)
Grazie mille
Luca