|
Salve a tutti,
sono finalmente giunto, anche grazie al vostro aiuto, alla ricetta #17 dello spatialite cookbook, qualcuno potrebbe aiutarmi a riscrivere la relativa query in modo che sia compatibile con la versione più recente dell'interfaccia dello Spatialindex? La query è la seguente: SELECT rw.name AS Railway, pp_e.name AS PopulatedPlace, (ST_Distance(rw.geometry, Transform(pp_a.geometry, 23032)) <= 1000.0) AS "A class [< 1Km]", (ST_Distance(rw.geometry, Transform(pp_b.geometry, 23032)) > 1000.0) AS "B class [< 2.5Km]", (ST_Distance(rw.geometry, Transform(pp_c.geometry, 23032)) > 2500.0) AS "C class [< 5Km]", (ST_Distance(rw.geometry, Transform(pp_d.geometry, 23032)) > 5000.0) AS "D class [< 10Km]", (ST_Distance(rw.geometry, Transform(pp_e.geometry, 23032)) > 10000.0) AS "E class [< 20Km]" FROM railways AS rw JOIN populated_places AS pp_e ON ( ST_Distance(rw.geometry, Transform(pp_e.geometry, 23032)) <= 20000.0 AND pp_e.id IN ( SELECT pkid FROM idx_populated_places_geometry WHERE pkid MATCH RTreeIntersects( MbrMinX( Transform( ST_Envelope(rw.geometry), 4326)), MbrMinY( Transform( ST_Envelope(rw.geometry), 4326)), MbrMaxX( Transform( ST_Envelope(rw.geometry), 4236)), MbrMaxY( Transform( ST_Envelope(rw.geometry), 4326))))) LEFT JOIN populated_places AS pp_d ON ( pp_e.id = pp_d.id AND ST_Distance(rw.geometry, Transform(pp_d.geometry, 23032)) <= 10000.0 AND pp_d.id IN ( SELECT pkid FROM idx_populated_places_geometry WHERE pkid MATCH RTreeIntersects( MbrMinX( Transform( ST_Envelope(rw.geometry), 4326)), MbrMinY( Transform( ST_Envelope(rw.geometry), 4326)), MbrMaxX( Transform( ST_Envelope(rw.geometry), 4236)), MbrMaxY( Transform( ST_Envelope(rw.geometry), 4326))))) LEFT JOIN populated_places AS pp_c ON ( pp_d.id = pp_c.id AND ST_Distance(rw.geometry, Transform(pp_c.geometry, 23032)) <= 5000.0 AND pp_c.id IN ( SELECT pkid FROM idx_populated_places_geometry WHERE pkid MATCH RTreeIntersects( MbrMinX( Transform( ST_Envelope(rw.geometry), 4326)), MbrMinY( Transform( ST_Envelope(rw.geometry), 4326)), MbrMaxX( Transform( ST_Envelope(rw.geometry), 4236)), MbrMaxY( Transform( ST_Envelope(rw.geometry), 4326))))) LEFT JOIN populated_places AS pp_b ON ( pp_c.id = pp_b.id AND ST_Distance(rw.geometry, Transform(pp_b.geometry, 23032)) <= 2500.0 AND pp_b.id IN ( SELECT pkid FROM idx_populated_places_geometry WHERE pkid MATCH RTreeIntersects( MbrMinX( Transform( ST_Envelope(rw.geometry), 4326)), MbrMinY( Transform( ST_Envelope(rw.geometry), 4326)), MbrMaxX( Transform( ST_Envelope(rw.geometry), 4236)), MbrMaxY( Transform( ST_Envelope(rw.geometry), 4326))))) LEFT JOIN populated_places AS pp_a ON ( pp_b.id = pp_a.id AND ST_Distance(rw.geometry, Transform(pp_a.geometry, 23032)) <= 1000.0 AND pp_a.id IN ( SELECT pkid FROM idx_populated_places_geometry WHERE pkid MATCH RTreeIntersects( MbrMinX( Transform( ST_Envelope(rw.geometry), 4326)), MbrMinY( Transform( ST_Envelope(rw.geometry), 4326)), MbrMaxX( Transform( ST_Envelope(rw.geometry), 4236)), MbrMaxY( Transform( ST_Envelope(rw.geometry), 4326))))); Grazie in anticipo, Beppe |
|
On Tue, 18 Feb 2014 09:14:38 -0800 (PST), Beppe wrote:
> Salve a tutti, > sono finalmente giunto, anche grazie al vostro aiuto, alla ricetta > #17 dello > spatialite cookbook, qualcuno potrebbe aiutarmi a riscrivere la > relativa > query in modo che sia compatibile con la versione più recente > SELECT rw.name AS Railway, pp_e.name AS PopulatedPlace, (ST_Distance(rw.geometry, Transform(pp_a.geometry, 23032)) <= 1000.0) AS "A class [< 1Km]", (ST_Distance(rw.geometry, Transform(pp_b.geometry, 23032)) > 1000.0) AS "B class [< 2.5Km]", (ST_Distance(rw.geometry, Transform(pp_c.geometry, 23032)) > 2500.0) AS "C class [< 5Km]", (ST_Distance(rw.geometry, Transform(pp_d.geometry, 23032)) > 5000.0) AS "D class [< 10Km]", (ST_Distance(rw.geometry, Transform(pp_e.geometry, 23032)) > 10000.0) AS "E class [< 20Km]" FROM railways AS rw JOIN populated_places AS pp_e ON ( ST_Distance(rw.geometry, Transform(pp_e.geometry, 23032)) <= 20000.0 AND pp_e.id IN ( SELECT rowid FROM SpatialIndex WHERE f_table_name = 'populated_places' AND search_frame = ST_Transform( ST_Envelope(rw.geometry), 4326))) LEFT JOIN populated_places AS pp_d ON ( pp_e.id = pp_d.id AND ST_Distance(rw.geometry, Transform(pp_d.geometry, 23032)) <= 10000.0 AND pp_d.id IN ( SELECT rowid FROM SpatialIndex WHERE f_table_name = 'populated_places' AND search_frame = ST_Transform( ST_Envelope(rw.geometry), 4326))) LEFT JOIN populated_places AS pp_c ON ( pp_d.id = pp_c.id AND ST_Distance(rw.geometry, Transform(pp_c.geometry, 23032)) <= 5000.0 AND pp_c.id IN ( SELECT rowid FROM SpatialIndex WHERE f_table_name = 'populated_places' AND search_frame = ST_Transform( ST_Envelope(rw.geometry), 4326))) LEFT JOIN populated_places AS pp_b ON ( pp_c.id = pp_b.id AND ST_Distance(rw.geometry, Transform(pp_b.geometry, 23032)) <= 2500.0 AND pp_b.id IN ( SELECT rowid FROM SpatialIndex WHERE f_table_name = 'populated_places' AND search_frame = ST_Transform( ST_Envelope(rw.geometry), 4326))) LEFT JOIN populated_places AS pp_a ON ( pp_b.id = pp_a.id AND ST_Distance(rw.geometry, Transform(pp_a.geometry, 23032)) <= 1000.0 AND pp_a.id IN ( SELECT rowid FROM SpatialIndex WHERE f_table_name = 'populated_places' AND search_frame = ST_Transform( ST_Envelope(rw.geometry), 4326))); ciao Sandro _______________________________________________ [hidden email] 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. 666 iscritti al 22.7.2013 |
|
This post was updated on .
Grazie di nuovo Sandro per il pronto aiuto!
Colgo l'occasione per chiederti se potresti consigliarmi un testo, possibilmente semplice e magari (anche se non necessariamente) sotto licenza GNU , che mi consenta di approfondire in maniera "gently" quanto sto apprendendo dallo studio dello "Spatialite cookbook"? Per comprendere il mio livello, tieni presente che sono appena entrato nel mondo degli Spatial DB grazie al cookbook.
Beppe |
|
On Tue, 18 Feb 2014 10:17:46 -0800 (PST), Beppe wrote:
> Colgo l'occasione per chiederti se potresti consigliarmi un testo, > possibilmente semplice e magari (anche se non necessariamente) anche > sotto > licenza GNU, che mi consenta di approfondire in maniera "gently" > quanto sto > apprendendo dallo studio dello "Spatialite cookbook"? > se cerchi un "libro di carta", puoi dare un'occhiata a questo: http://www.darioflaccovio.it/libro.php/gis-open-source-df0149_C794 contiene un capitolo tutto dedicato a SpatiaLite scritto da un autore che dovrebbe intendersene (forse ... comunque e' uno che a me mi sta molto simpatico) :-D se invece preferisci scegliere a gusto tuo tra e-book e "mattone di carta" direi che un serio candidato per approfondire il tema Spatial DBMS e' sicuramente questo qua: http://www.packtpub.com/postgis-to-store-organize-manipulate-analyze-spatial-data-cookbook/book > Per comprendere il mio livello, tieni presente che sono appena > entrato > nel mondo degli Spatial DB grazie al cookbook. > confidenza per confidenza; quando ho iniziato a sviluppare SpatiaLite la mia unica fonte di informazione sugli Spatial DBMS e' stata questa: https://dev.mysql.com/doc/refman/5.0/en/spatial-extensions.html da li ho scoperto che sotto a tutta la baracca Spatial SQL c'era uno standard internazionale formalmente definito, e da allora in poi ho sempre tenuto la specifica ufficiale come stella polare. non e' una lettura facilissima, ma e' decisamente autorevole ed altamente istruttiva: http://portal.opengeospatial.org/files/?artifact_id=25354 ciao Sandro _______________________________________________ [hidden email] 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. 666 iscritti al 22.7.2013 |
|
In reply to this post by Beppe
Grazie, farò tesoro delle tue indicazioni e le utilizzerò per accompagnarmi in questo per me nuovo mondo che ho scoperto essere molto appassionante oltre che essenziale per chi come me si occupa di cartografia e GIS.
Beppe |
| Free forum by Nabble | Edit this page |
