Salve a tutti,
stò provando la seguente query su 2 db postgres/postgis 9.0/1.5 e 8.2/1.4(?) su una stessa tabella clonata sui due db.
SELECT DISTINCT ON (mytable.my_id) mytable.my_id, asText(envelope(mytable.the_geom)) AS the_geom
FROM mytable
ORDER BY mytable.my_id;
Le geometrie di mytable.the_geom sono solo punti.
Il problema è che col db vecchia versione, la funzione envelope restituisce correttamente i POLYGON dei bbox dei punti raggruppati per my_id, mentre con la nuova versione mi restituisce POINT.
Ovviamente a me servono i poligoni e non i punti.
Qualcuno mi sa aiutare?
On Thu, Mar 24, 2011 at 03:08:33PM +0100, Benedetto Porfidia wrote:
Salve a tutti,
stò provando la seguente query su 2 db postgres/postgis 9.0/1.5 e
8.2/1.4(?) su una stessa tabella clonata sui due db.
SELECT DISTINCT ON (mytable.my_id) mytable.my_id,
asText(envelope(mytable.the_geom)) AS the_geom
FROM mytable
ORDER BY mytable.my_id;
Le geometrie di mytable.the_geom sono solo punti.
Il problema è che col db vecchia versione, la funzione envelope
restituisce correttamente i POLYGON dei bbox dei punti raggruppati per
my_id, mentre con la nuova versione mi restituisce POINT.
PUo' darsi tu stia confondendo "envelope" con "extent".
Il primo e' una funzione, la seconda un aggregatore.
risolto con l'extent; mi rimane l'interrogativo sul perchè su una versione envelope restituisce Polygon e sull'altra Points.
Forse envelope restituisce l'envelope del primo punto che trova con con la distinct? Allora perchè mi ritorna polygon?
./B
Il 24/03/2011 15.14, Sandro Santilli ha scritto:
On Thu, Mar 24, 2011 at 03:08:33PM +0100, Benedetto Porfidia wrote:
Salve a tutti,
stò provando la seguente query su 2 db postgres/postgis 9.0/1.5 e
8.2/1.4(?) su una stessa tabella clonata sui due db.
SELECT DISTINCT ON (mytable.my_id) mytable.my_id,
asText(envelope(mytable.the_geom)) AS the_geom
FROM mytable
ORDER BY mytable.my_id;
Le geometrie di mytable.the_geom sono solo punti.
Il problema è che col db vecchia versione, la funzione envelope
restituisce correttamente i POLYGON dei bbox dei punti raggruppati per
my_id, mentre con la nuova versione mi restituisce POINT.
PUo' darsi tu stia confondendo "envelope" con "extent".
Il primo e' una funzione, la seconda un aggregatore.
On Thu, Mar 24, 2011 at 04:23:20PM +0100, Benedetto Porfidia wrote:
Sandro, grazie
risolto con l'extent; mi rimane l'interrogativo sul perchè su una
versione envelope restituisce Polygon e sull'altra Points.
Forse envelope restituisce l'envelope del primo punto che trova con con
la distinct? Allora perchè mi ritorna polygon?
Puo' darsi.
Non ho presente la sintassi DISTINCT ON, quindi non sono sicuro
della semantica.
Purtroppo è proprio la distinct che crea problemi.
Infatti con la clausola asText la query ritorna dei poligoni. Facendo "create table as select" e provandola a caricare su qgis, la visualizza come punti. Occorre quindi togliere la distinct e allora riappaiono i poligoni. Rimane però, da trovare una chiave univoca da mettere nelle select per evitare la creazione di una tabella e farla diventare una view "visibile" a qgis
Grazie ancora
ciao
./b
Il 24/03/2011 16.40, Sandro Santilli ha scritto:
On Thu, Mar 24, 2011 at 04:23:20PM +0100, Benedetto Porfidia wrote:
Sandro, grazie
risolto con l'extent; mi rimane l'interrogativo sul perchè su una
versione envelope restituisce Polygon e sull'altra Points.
Forse envelope restituisce l'envelope del primo punto che trova con con
la distinct? Allora perchè mi ritorna polygon?
Puo' darsi.
Non ho presente la sintassi DISTINCT ON, quindi non sono sicuro
della semantica.