[QGIS-it-user] [SpatiaLite] - creare hub lines

Ciao a tutti,
sto cercando di creare le cosiddette “hub lines” tra differenti feature puntuali.
Ho importato i layer in un db sqlite, il primo rappresenta delle calotte per il conferimento rifiuti e il secondo gli utenti che utilizzano tali calotte:

layer calotte
[id_cal] PK
[id_isola]
[Geometry]

layer utenti
[id_utente] PK
[codfis]
[nome]
[tipo]

La relazione è M:M e le combinazioni sono scritte nella tabella:

conferimenti
[id_cal]

[id_utente]

Per creare una feature lineare che colleghi i due set di punti secondo quanto scritto nella tabella dei conferimenti ho proceduto così:

CREATE TABLE hub_lines_2 (
ID_calotta TEXT NOT NULL,
ID_isola TEXT,
ID_utente TEXT NOT NULL,
codfis TEXT NOT NULL,
nome TEXT NOT NULL,
tipo TEXT NOT NULL);

SELECT AddGeometryColumn (
‘hub_lines’, ‘the_geom’, 25832, ‘LINESTRING’, ‘XY’);

E poi ho popolato la tabella:

INSERT INTO hub_lines_2 (
ID_calotta, ID_isola, ID_utente, codfis, nome, tipo, the_geom)
SELECT c.ID_Calotta, c.ID_isola, u.Cod_Uten1, u.Cod_Fisc, u.Contribuen, u.tipo_utenz,
MAKELINE(‘x(c.Geometry)’ ,‘y(u.geom)’)
FROM calotte_ASIA_AltPag_20160608 AS c
JOIN utenze_chiavi_2015 AS uc ON ( c.ID_Calotta = uc.ID_calotta)
JOIN utenti_DD2_S_completo AS u ON ( u.Cod_Uten1 = uc.Codice_utenza);

L’istruzione procede con successo ed ottengo una tabella ma con il campo [the_geom] nullo. Dato che la sintassi sembra essere corretta, non riesco a capire perchè non viene popolato il campo relativo alla geometria ed ottenere infine una feature lineare.

QGIS 2.8.8
SpatiaLite 4.3.0

Grazie per le dritte.
Daniele

···

Daniele Bonaposta,
Cartografia - G.I.S.

via Don Minzoni 13a
40121 - Bologna
mobile: +39.338.3377044
e-mail: daniele.bonaposta@gmail.com

Linkedin: http://www.linkedin.com/pub/daniele-bonaposta/26/487/872


Il 21/06/2016 13:18, Daniele Bonaposta ha scritto:

Ciao a tutti,
sto cercando di creare le cosiddette "hub lines" tra differenti feature puntuali.
Ho importato i layer in un db sqlite, il primo rappresenta delle calotte per il conferimento rifiuti e il secondo gli utenti che utilizzano tali calotte:

_layer calotte_
[id_cal] PK
[id_isola]
[Geometry]

_layer utenti_
[id_utente] PK
[codfis]
[nome]
[tipo]

La relazione è M:M e le combinazioni sono scritte nella tabella:
_
_conferimenti_
[id_cal]
[id_utente]

Per creare una feature lineare che colleghi i due set di punti secondo quanto scritto nella tabella dei conferimenti ho proceduto così:

CREATE TABLE hub_lines_2 (
ID_calotta TEXT NOT NULL,
ID_isola TEXT,
ID_utente TEXT NOT NULL,
codfis TEXT NOT NULL,
nome TEXT NOT NULL,
tipo TEXT NOT NULL);

SELECT AddGeometryColumn (
'hub_lines', 'the_geom', 25832, 'LINESTRING', 'XY');

E poi ho popolato la tabella:

INSERT INTO hub_lines_2 (
ID_calotta, ID_isola, ID_utente, codfis, nome, tipo, the_geom)
SELECT c.ID_Calotta, c.ID_isola, u.Cod_Uten1, u.Cod_Fisc, u.Contribuen, u.tipo_utenz,
MAKELINE('x(c.Geometry)' ,'y(u.geom)')
FROM calotte_ASIA_AltPag_20160608 AS c
JOIN utenze_chiavi_2015 AS uc ON ( c.ID_Calotta = uc.ID_calotta)
JOIN utenti_DD2_S_completo AS u ON ( u.Cod_Uten1 = uc.Codice_utenza);

L'istruzione procede con successo ed ottengo una tabella ma con il campo [the_geom] nullo. Dato che la sintassi sembra essere corretta, non riesco a capire perchè non viene popolato il campo relativo alla geometria ed ottenere infine una feature lineare.

QGIS 2.8.8
SpatiaLite 4.3.0

Grazie per le dritte.
Daniele

--
_____________________________

Daniele Bonaposta,
Cartografia - G.I.S.

via Don Minzoni 13a
40121 - Bologna
mobile: +39.338.3377044
e-mail: daniele.bonaposta@gmail.com <mailto:daniele.bonaposta@gmail.com>

*Linked*in: http://www.linkedin.com/pub/daniele-bonaposta/26/487/872

_____________________________

_______________________________________________
QGIS-it-user mailing list
QGIS-it-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-it-user

Perchè non usare HUB LInes di MMQGIS?

Il giorno Tue, 21 Jun 2016 13:18:04 +0200
Daniele Bonaposta <daniele.bonaposta@gmail.com> ha scritto:

Ciao a tutti,

ciao,
non so darti la risposta completa però mi sembra di notare qualche
anomalia: ad es. quì forse

SELECT AddGeometryColumn (
'hub_lines', 'the_geom', 25832, 'LINESTRING', 'XY');

   ^^^^^^^^^
hai creato la colonna geometria nella tabella 'hub_lines' e non in
quella desiderata 'CREATE TABLE hub_lines_2' ?

e poi non vedo dove trova questo

MAKELINE('x(c.Geometry)' ,'y(u.geom)')

                               ^^^^^^
visto che quì non c'è:

*layer utenti*
[id_utente] PK
[codfis]
[nome]
[tipo]

Grazie per le dritte.
Daniele

ciao,
giuliano

Il giorno 21 giugno 2016 15:17, giulianc51 <giulianc51@gmail.com> ha
scritto:

Il giorno Tue, 21 Jun 2016 13:18:04 +0200
Daniele Bonaposta <daniele.bonaposta@gmail.com> ha scritto:

> Ciao a tutti,

ciao,
non so darti la risposta completa però mi sembra di notare qualche
anomalia: ad es. quì forse
> SELECT AddGeometryColumn (
> 'hub_lines', 'the_geom', 25832, 'LINESTRING', 'XY');
   ^^^^^^^^^
hai creato la colonna geometria nella tabella 'hub_lines' e non in
quella desiderata 'CREATE TABLE hub_lines_2' ?

​stando al cookbook di Furieri ho creato prima la tabella e poi in seguito
la colonna Geometry

e poi non vedo dove trova questo
> MAKELINE('x(c.Geometry)' ,'y(u.geom)')
                               ^^^^^^
visto che quì non c'è:
> *layer utenti*
> [id_utente] PK
> [codfis]
> [nome]
> [tipo]

errore mio, la feature ha il dato geometrico, ho dimenticato di scriverlo:

*layer utenti*
[id_utente] PK
[geom]
[codfis]
[nome]
[tipo]

> Grazie per le dritte.
> Daniele

ciao,
giuliano
_______________________________________________
QGIS-it-user mailing list
QGIS-it-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-it-user

--
_____________________________

Daniele Bonaposta,
Cartografia - G.I.S.

via Don Minzoni 13a
40121 - Bologna
mobile: +39.338.3377044
e-mail: daniele.bonaposta@gmail.com

*Linked*in: http://www.linkedin.com/pub/daniele-bonaposta/26/487/872

_____________________________

le due entità hanno una relazione M:M tra loro, dovrei duplicare i punti per poter utilizzare le hub lines di MMQGIS

···

Il giorno 21 giugno 2016 13:49, Giulio Fattori <giulio.fattori@tin.it> ha scritto:

Il 21/06/2016 13:18, Daniele Bonaposta ha scritto:

Ciao a tutti,
sto cercando di creare le cosiddette “hub lines” tra differenti feature puntuali.
Ho importato i layer in un db sqlite, il primo rappresenta delle calotte per il conferimento rifiuti e il secondo gli utenti che utilizzano tali calotte:

layer calotte
[id_cal] PK
[id_isola]
[Geometry]

layer utenti
[id_utente] PK
[codfis]
[nome]
[tipo]

La relazione è M:M e le combinazioni sono scritte nella tabella:

conferimenti
[id_cal]

[id_utente]

Per creare una feature lineare che colleghi i due set di punti secondo quanto scritto nella tabella dei conferimenti ho proceduto così:

CREATE TABLE hub_lines_2 (
ID_calotta TEXT NOT NULL,
ID_isola TEXT,
ID_utente TEXT NOT NULL,
codfis TEXT NOT NULL,
nome TEXT NOT NULL,
tipo TEXT NOT NULL);

SELECT AddGeometryColumn (
‘hub_lines’, ‘the_geom’, 25832, ‘LINESTRING’, ‘XY’);

E poi ho popolato la tabella:

INSERT INTO hub_lines_2 (
ID_calotta, ID_isola, ID_utente, codfis, nome, tipo, the_geom)
SELECT c.ID_Calotta, c.ID_isola, u.Cod_Uten1, u.Cod_Fisc, u.Contribuen, u.tipo_utenz,
MAKELINE(‘x(c.Geometry)’ ,‘y(u.geom)’)
FROM calotte_ASIA_AltPag_20160608 AS c
JOIN utenze_chiavi_2015 AS uc ON ( c.ID_Calotta = uc.ID_calotta)
JOIN utenti_DD2_S_completo AS u ON ( u.Cod_Uten1 = uc.Codice_utenza);

L’istruzione procede con successo ed ottengo una tabella ma con il campo [the_geom] nullo. Dato che la sintassi sembra essere corretta, non riesco a capire perchè non viene popolato il campo relativo alla geometria ed ottenere infine una feature lineare.

QGIS 2.8.8
SpatiaLite 4.3.0

Grazie per le dritte.
Daniele


Daniele Bonaposta,
Cartografia - G.I.S.

via Don Minzoni 13a
40121 - Bologna
mobile: +39.338.3377044
e-mail: daniele.bonaposta@gmail.com

Linkedin: http://www.linkedin.com/pub/daniele-bonaposta/26/487/872


_______________________________________________
QGIS-it-user mailing list
[QGIS-it-user@lists.osgeo.org](mailto:QGIS-it-user@lists.osgeo.org)
[http://lists.osgeo.org/mailman/listinfo/qgis-it-user](http://lists.osgeo.org/mailman/listinfo/qgis-it-user)

Perchè non usare HUB LInes di MMQGIS?


QGIS-it-user mailing list
QGIS-it-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-it-user


Daniele Bonaposta,
Cartografia - G.I.S.

via Don Minzoni 13a
40121 - Bologna
mobile: +39.338.3377044
e-mail: daniele.bonaposta@gmail.com

Linkedin: http://www.linkedin.com/pub/daniele-bonaposta/26/487/872


Il giorno Tue, 21 Jun 2016 16:41:19 +0200
Daniele Bonaposta <daniele.bonaposta@gmail.com> ha scritto:

ciao,

...
> ....
​stando al cookbook di Furieri ho creato prima la tabella e poi in
seguito la colonna Geometry

ho visto che hai risolto, ma in realtà ti segnalavo che la tabella che
stavi creando e popolando era 'hub_lines_2' mentre quì

> > SELECT AddGeometryColumn (
> > 'hub_lines', 'the_geom', 25832, 'LINESTRING', 'XY');
> ^^^^^^^^^

agivi sulla tabella 'hub_lines', diversa dalla prima :slight_smile:

ciao,
giuliano