[Gfoss] postgis e query "on the fly"

a.furieri a lqt.it a.furieri a lqt.it
Gio 20 Gen 2011 14:00:36 CET


On Thu, 20 Jan 2011 12:32:46 +0000 (GMT), Francesco Geri wrote 
> Io ero convinto che postgis potesse fare query 
> "on the fly" gestendo srid differenti 
>

Francesco,

certo che puoi (almeno, in linea di massima). 
come dici tu stesso, ST_Transform() serve 
proprio per questo.

Ma quando tu dici "on the fly", cosa intendi 
dire esattamente ?

cerco di farti un esempio "tera tera"; ammesso 
che tbl1.geom abbia SRID=32632 mentre 
tbl2.geom abbia SRID=4326

--------------------------- 
SELECT * 
FROM tbl1, tbl2 
WHERE ST_Intersects(tbl1.geom, tbl2.geom);

questa sicuramente fallisce, perchè SQL non ha la bacchetta 
magica, e non ha nessuna idea che tu intendi applicare 
una riproiezione.

------------------------ 
SELECT * 
FROM tbl1, tbl2, 
WHERE ST_Intersects(tbl1.geom, ST_Transform(tbl2.geom, 32632));

oppure

SELECT * 
 FROM tbl1, tbl2, 
 WHERE ST_Intersects(ST_Transform(tbl1.geom, 4326), tbl2.geom);

invece queste funzioneranno sicuramente,
perchè ora *entrambe* le geometrie appartengono
al medesimo SRID
ma glielo devi spiegare tu a SQL che occorre
applicare una riproiezione :-)

ciao Sandro



Maggiori informazioni sulla lista Gfoss