[Gfoss] Spatialite cookbook

Salve a tutti,
sto studiando spatialite su "Spatialite cookbook" e arrivato alla ricetta
#10 mi sono reso conto che alcune funzionalità sono incompatibili con la
versione più recente di Spatialite che sto usando...
Attualmente sono arrivato alla ricetta #15 e non riesco a capire il modo per
far funzionare la seguente query:

SELECT pp1.name AS "PopulatedPlace #1",
  GeodesicLength(
    MakeLine(pp1.geometry, pp2.geometry))
      AS "Distance (meters)",
  pp2.name AS "PopulatedPlace #2"
FROM populated_places AS pp1,
  populated_places AS pp2
WHERE GeodesicLength(
    MakeLine(pp1.geometry, pp2.geometry)) < 1000.0
  AND pp1.id <> pp2.id
  AND pp2.ROWID IN (
    SELECT pkid
    FROM idx_populated_places_geometry
    WHERE pkid MATCH RTreeDistWithin(
      ST_X(pp1.geometry),
      ST_Y(pp1.geometry), 0.02))
ORDER BY 2

Qualcuno potrebbe aiutarmi?
Grazie in anticipo,
Beppe

--
View this message in context: http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/Spatialite-cookbook-tp7586703.html
Sent from the Gfoss -- Geographic Free and Open Source Software - Italian mailing list mailing list archive at Nabble.com.

On Wed, 12 Feb 2014 13:10:11 -0800 (PST), Beppe wrote:

Salve a tutti,
sto studiando spatialite su "Spatialite cookbook" e arrivato alla ricetta
#10 mi sono reso conto che alcune funzionalità sono incompatibili con la
versione più recente di Spatialite che sto usando...
Attualmente sono arrivato alla ricetta #15 e non riesco a capire il modo per
far funzionare la seguente query:

SELECT pp1.name AS "PopulatedPlace #1",
  GeodesicLength(
    MakeLine(pp1.geometry, pp2.geometry))
      AS "Distance (meters)",
  pp2.name AS "PopulatedPlace #2"
FROM populated_places AS pp1,
  populated_places AS pp2
WHERE GeodesicLength(
    MakeLine(pp1.geometry, pp2.geometry)) < 1000.0
  AND pp1.id <> pp2.id
  AND pp2.ROWID IN (
    SELECT pkid
    FROM idx_populated_places_geometry
    WHERE pkid MATCH RTreeDistWithin(
      ST_X(pp1.geometry),
      ST_Y(pp1.geometry), 0.02))
ORDER BY 2

Qualcuno potrebbe aiutarmi?

ciao Beppe,

effettivamente il cookbook inizia ad invecchiare qua e la, specie
dove c'e' in ballo uno Spatial Index.

le subqueries basate sul meccanismo "WHERE ... MATCH ..." erano
quanto di meglio avevamo a disposizione qualche anno fa.
nel frattempo sono state deprecate (e definitivamente rimosse
dal codice) perche' alla prova dei fatti creavano un sacco di
problemi.

attualmente si usa la nuova interfaccia SpatialIndex, che trovi
descritta in dettaglio in questo documento:
https://www.gaia-gis.it/fossil/libspatialite/wiki?name=SpatialIndex

quindi seguendo le ultime evoluzioni ora quella query diventa:

SELECT pp1.name AS "PopulatedPlace #1",
   GeodesicLength(
     MakeLine(pp1.geometry, pp2.geometry))
       AS "Distance (meters)",
   pp2.name AS "PopulatedPlace #2"
FROM populated_places AS pp1,
   populated_places AS pp2
WHERE GeodesicLength(
     MakeLine(pp1.geometry, pp2.geometry)) < 1000.0
   AND pp1.id <> pp2.id
   AND pp2.ROWID IN (
     SELECT rowid FROM SpatialIndex
     WHERE f_table_name = 'populated_places'
       AND search_frame = ST_Buffer(pp1.geometry, 0.02))
ORDER BY 2

ciao Sandro

Ciao Sandro,

ti ringrazio per l'aiuto.
Se ci fosse la possibilità sarebbe interessante preparare un aggiornamento
del cookbook, considerato il suo valore didattico; un suo update mi è sembra
di capire, ora come ora interesserebbe solo 1 capitolo per intero ed alcune
query... Io purtroppo sono entrato da poco nel mondo degli spatial DB,
altrimenti avrei collaborato molto volentieri ad un eventuale progetto in
tal senso!
Volevo inolte sapere, visto che i files necessari alla ricetta #19, ovvero i
dati Istat 2010 non sono più disponibili neanche dietro richiesta diretta
all'Istat, c'è qualche modo per ottenerli?

Di nuovo grazie,
Beppe

--
View this message in context: http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/Spatialite-cookbook-tp7586703p7586733.html
Sent from the Gfoss -- Geographic Free and Open Source Software - Italian mailing list mailing list archive at Nabble.com.

On Thu, 13 Feb 2014 09:33:08 -0800 (PST), Beppe wrote:

Volevo inolte sapere, visto che i files necessari alla ricetta #19, ovvero i
dati Istat 2010 non sono più disponibili neanche dietro richiesta diretta
all'Istat, c'è qualche modo per ottenerli?

certo che si; ISTAT nel frattempo ha rivoluzionato tutta la propria
infrastruttura WEB quando ha deciso di rilasciare questi datasets
come Open Data sotto licenza CC-BY

ora tutti gli SHP con i confini comunali/provinciali/regionali
(2001, 2008, 2010 e 2011) li trovi qua:
http://www.istat.it/it/archivio/24613

ciao Sandro

Grazie!

--
View this message in context: http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/Spatialite-cookbook-tp7586703p7586737.html
Sent from the Gfoss -- Geographic Free and Open Source Software - Italian mailing list mailing list archive at Nabble.com.