AddGeometryColumn

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

AddGeometryColumn

Massimo Paone
Ciao a tutti,

sto cercando di importare un csv in Spatialite (usando la Gui esterna:
spatialite-gui-win-x86-1.3.0). Il csv contiene gia' due campi di coordinate.
Il problema e' che dopo aver aggiunto la geometria con il classico comando

SELECT AddGeometryColumn ("NOME_TABELLA", "Geometry", 4326, "POINT", 2);

La tabella sembra acquisire la geometria (compare correttamente il piccolo
mappamondino blu-verde), ma poi in QGIS non vedo i punti (se carico il layer
spatailite) ed infatti se guardo cosa c'e' nel campo Geometry (sempre dalla
GUI), i valori sono tutti NULL!

Qualche giorno fa avevo fatto la stessa operazione con la stessa tabella csv
di origine, la stessa gui e la stessa istruzione SELECT AddGeometryColumn
ed il campo geometry era di tipo BLOB: infatti tutto funzionava in QGIS
(visualizzavo i punti).

Cosa succede?

Grazie anticipatamente!!

Massimo

p.s. quando importo il csv specifico la virgola come delimitatore decimale
poiche' le coordinate sono LongLat con virgola (ma d'altronde avevo fatto lo
stesso qualche giorno fa)

_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
540 iscritti al 4.11.2011
Reply | Threaded
Open this post in threaded view
|

Re: AddGeometryColumn

a.furieri
On Thu, 17 Nov 2011 13:05:07 +0100, Massimo Paone wrote

> Ciao a tutti,
>
> sto cercando di importare un csv in Spatialite (usando la Gui
> esterna: spatialite-gui-win-x86-1.3.0). Il csv contiene gia' due
> campi di coordinate. Il problema e' che dopo aver aggiunto la
> geometria con il classico comando
>
> SELECT AddGeometryColumn ("NOME_TABELLA", "Geometry", 4326, "POINT",
> 2);
>
> La tabella sembra acquisire la geometria (compare correttamente il
> piccolo mappamondino blu-verde), ma poi in QGIS non vedo i punti (se
> carico il layer spatailite) ed infatti se guardo cosa c'e' nel campo
> Geometry (sempre dalla GUI), i valori sono tutti NULL!
>

scusa Massimo, ma fino a qua (stando a quel che dici)
hai semplicemente definito una nuova colonna Geometry.
ma non ci hai ancora inserito neppure un singolo valore :-D
e quindi è del tutto normale che siano tutti NULL

quello che devi fare è popolare le Geometrie: p.es.
lanciando (dalla GUI) qualcosa di questo tipo:

UPDATE nome_tabella SET geometry = MakePoint(long, lat, 4326);

ovviamene i nomi "long" e "lat" te li devi aggiustare
in modo tale che corrispondano  alle due colonne che
contengono i rispettivi valori delle coordinate.

ciao Sandro


_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
540 iscritti al 4.11.2011
Reply | Threaded
Open this post in threaded view
|

Re: AddGeometryColumn

Massimo Paone
> quello che devi fare è popolare le Geometrie: p.es.
> lanciando (dalla GUI) qualcosa di questo tipo:
>
> UPDATE nome_tabella SET geometry = MakePoint(long, lat, 4326);
>

Grazie mille Sandro, ora funziona, sono uno sbadato, mi ero dimenticato
l'update!
Ehm ehm ... ho appena iniziato con le istruzioni sql, mi metto a studiare un
po'.

Grazie ancora.

massimo

_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
540 iscritti al 4.11.2011
Reply | Threaded
Open this post in threaded view
|

Re: AddGeometryColumn

Massimo Paone
In reply to this post by Massimo Paone
Ciao a tutti di nuovo,

sto continuando a fare i primi passi con Spatialite e le istruzioni SQL.

Ho creato alcune view (con qualche condizione where, tanto per fare delle
prove) a partire da una precedente View (che era una JOIN tra due tabelle e
che riesco correttamente a visualizzare in QGIS, avendo popolato il campo
geometry).
Non riesco pero' a popolare il campo geometry delle varie view (che sembrano
tutte avere il campo geometry) con i consueti due comandi e quindi non posso
visualizzare queste view in QGIS:

SELECT AddGeometryColumn("NOME_VIEW", "Geometry", 4326, "POINT", 2);
UPDATE "NOME_VIEW" SET Geometry=MakePoint("Long", "Lat", 4326);

Il messaggio di errore dice: SQL error: "cannot modify NOME_VIEW because it
is a view".

Questo significa che io dovrei creare necessariamente le varie view a
partire dalle TABELLE iniziali e NON DALLA VIEW che le joina?

Grazie di nuovo,

Massimo



----- Original Message -----
From: "Massimo Paone" <[hidden email]>
To: <[hidden email]>
Cc: <[hidden email]>
Sent: Thursday, November 17, 2011 3:08 PM
Subject: Re: [Gfoss] AddGeometryColumn


>> quello che devi fare è popolare le Geometrie: p.es.
>> lanciando (dalla GUI) qualcosa di questo tipo:
>>
>> UPDATE nome_tabella SET geometry = MakePoint(long, lat, 4326);
>>
>
> Grazie mille Sandro, ora funziona, sono uno sbadato, mi ero dimenticato
> l'update!
> Ehm ehm ... ho appena iniziato con le istruzioni sql, mi metto a studiare
> un po'.
>
> Grazie ancora.
>
> massimo

_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
540 iscritti al 4.11.2011
Reply | Threaded
Open this post in threaded view
|

Re: AddGeometryColumn

a.furieri
On Fri, 18 Nov 2011 14:39:38 +0100, Massimo Paone wrote
> Questo significa che io dovrei creare necessariamente le varie view
> a partire dalle TABELLE iniziali e NON DALLA VIEW che le joina?
>

Ciao Massimo,

pensa alle VIEW come ad una specie di "guscio virtuale"
che ti consente di leggere in tuoi dati in modo
semplicificato e meglio organizzato.

appunto: "ti consentono di leggere", cioè di fare
delle SELECT.

ma le VIEW (almeno per SQLite, come per moltissimi
DBMS) sono rigorosamente read-only: i comandi
INSERT, UPDATE e DELETE sono tassativamente proibiti
per una VIEW: devi necessariamente accedere alla
TABLE sottostante per modificare i dati.

e naturalmente non puoi creare una nuova colonna
"attaccandola" ad una VIEW: la dovrai piuttosto
definire in una delle TABLE sottostanti.

insomma, fino a che si parla di SELECT una TABLE
ed una VIEW sono praticamente indistinguibili.
N.B.: puoi anche creare una VIEW che mette in
JOIN altre 2 o 3 VIEWs, non c'è nulla di anomalo.

ma qualsiasi altra operazione che implichi modificare
i dati (oppure modificare la struttura dei dati)
è tassativamente proibita per una VIEW.

-------------

piccolo excursus storico che ti aiuterà a capire
meglio: i DBMS esistono da quasi 40 anni, cioè
ben da prima che approdassero dalle parti del GIS.

allora, prova a pensare ad un sistema contabile
ed amministrativo, con tanto di informazioni
anagrafiche, finanziarie, di carriera, promozioni,
procedimenti disciplinari, listini prezzi, sconti
riservati a clienti particolari etc
ovviamente sono tutte informazioni riservate,
per un motivo o per un altro.

ecco quindi che i "dati grezzi" staranno nelle
TABLEs vere e proprie: e magari pochissimi
addetti della direzione centrale saranno abilitati
a modificare ed inserire i dati.

viceversa, un oceano di VIEWs consentirà
a tutti gli altri uffici (e pure al pubblico
esterno, magari via web) di consultare "quasi"
tutto: escluso ovviamente i dati sensibili,
che saranno  accuratamente nascosti ed assolutamente
inaccessibili ed invisibili.

ovviamente gli Spatial DMBS sono semplicemente
DBMS "normali", a cui viene attaccata qualche
estensione un po' buffa: ma la logica operativa
resta pur sempre la stessa di cui sopra.

ciao Sandro
_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
540 iscritti al 4.11.2011