Documenti su Spatialite

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

Documenti su Spatialite

Beppe
Salve a tutti,

Utilizzando Spatialite vorrei realizzare un piccolo database spaziale relativo a un certo numero di pozzi ubicati in una certa area  e vorrei collegare a ciascun pozzo una scheda in formato pdf che contenga la relativa stratigrafia: è possibile farlo?

Grazie in anticipo,
Beppe
Reply | Threaded
Open this post in threaded view
|

Re: Documenti su Spatialite

a.furieri
On Thu, 17 Apr 2014 11:19:58 -0700 (PDT), Beppe wrote:
> Salve a tutti,
>
> Utilizzando Spatialite vorrei realizzare un piccolo database spaziale
> relativo a un certo numero di pozzi ubicati in una certa area  e
> vorrei
> collegare a ciascun pozzo una scheda in formato pdf che contenga la
> relativa
> stratigrafia: è possibile farlo?
>

Ciao Beppe,

certo che puoi farlo; addirittura puoi scegliere tra due
meccanismi alternativi:

a) nella tavola Spatial "pozzi" aggiungi una colonna di tipo
    TEXT in cui verra' memorizzato il pathname del documento
    PDF associato a quella riga.
b) oppure aggiungi una colonna di tipo BLOB in cui memorizzarai
    direttamente il documento PDF.

insomma, puoi scegliere a piacer tuo se tenere i PDF sul file
system oppure memorizzarli direttamente all'interno del DB.
a me personalmente piace piu' la soluzione b), perche' ti
assicura che quando trasferisci il DB tra una macchina e
l'altra verranno sicuramente trasferiti anche tutti i PDF
in un sol colpo.
la soluzione a) e' sicuramente piu' fragile, visto che
basterebbe semplicemente spostare o rinominare la cartella
che contiene i PDF per mandare tutta la struttura logica
a gambe all'aria.

nota bene: non vale solo per i PDF; uno schema di questo
tipo lo puoi facilmente estendere a fogli di calcolo,
immagini etc.

detto questo: quanto sopra rappresenta meta' della soluzione;
dal punto di vista delle tecnologie di storage sei a posto.

poi pero' immagino che ti serva anche qualche componente
applicativo che usi quei dati in modo sensato.
p.es. visualizzando automaticamente il PDF quando viene
selezionato un pozzo sulla mappa, o comunque quando si
apre una scheda di consultazione dei dati.

e qua temo proprio che ti dovrai sviluppare qualche componente
software ad hoc, che provveda a recuperare il PDF, faccia
partire un appropriato visualizzatore etc etc.
cosi' a lume di naso la vedo abbastanza semplice se il tuo
scopo e' lavorare in ambito web-gis: te la dovresti cavare
con un po' di HTML+JavaScript e sviluppando una CGI custom.
se invece stai pensando ad una integrazione con qualche app
desktop (p.es. QGIS) immagino che dovrai svilupparti un
apposito plug-in.

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
Reply | Threaded
Open this post in threaded view
|

Re: Documenti su Spatialite

Beppe
Grazie Alessandro,

Hai visto proprio bene: volevo fare una cosa molto semplice da integrare proprio con QGIS! In questi ultimi mesi, grazie al Cookbook e alle fonti che mi hai consigliato e che sto ancora consultando, ho appreso le basi di Spatialite: sulla scorta di questa mia breve e quindi ancora non matura esperienza volevo realizzare un semplice database dei pozzi idrici che ho realizzato in questi anni integrando QGIS con Spatialite, contenente sia le stratigrafie, ma anche le relative documentazioni, autorizzazioni, etc.
Per quanto riguarda i linguaggi di programmazione, ne sono totalmente digiuno: tempo permettendo, dovrei iniziare a studiare Python dopo Pasqua.
Ti ringrazio

Beppe
Reply | Threaded
Open this post in threaded view
|

Re: Documenti su Spatialite

Beppe
In reply to this post by a.furieri
Causa impegni di lavoro, ho potuto provare solo oggi l'inserimento dei documenti secondo la procedura consigliatami da Sandro...
Per riferimento ho creato una cartella prova contenente un file pdf ("pinko_pdf")nella directory
1a procedura. Ho creato la tabella con un campo testo nel quale poi ho successivamente inserito il percorso del file pdf di mio interesse: il percorso compare nel corrispondente campo della tabella, ma non viene richiamato nè riesco a far sì che venga visualizzato.

create table provapdf (
 id integer not null primary key autoincrement,
 type text not null,
 document text not null)

insert into provapdf (id, type, document)
values (null, "pdf", "C:\Users\prova\pinko_pdf")

2a procedura. Ho creato un'altra tabella con un campo blob con la seguente sintassi:

create table provapdf1 (
 id integer not null primary key autoincrement,
 type text not null,
 document blob)

come posso memorizzare direttamente il file pdf o documento nella colonna blob?

Considerata la mia poca esperienza è quasi certo che stia sbagliando o saltando qualcosa, qualcuno potrebbe aiutarmi a capire dove?
Grazie,
Beppe



Reply | Threaded
Open this post in threaded view
|

Re: Documenti su Spatialite

a.furieri
On Mon, 5 May 2014 09:32:23 -0700 (PDT), Beppe wrote:

> Causa impegni di lavoro, ho potuto provare solo oggi l'inserimento
> dei
> documenti secondo la procedura consigliatami da Sandro...
> Per riferimento ho creato una cartella prova contenente un file pdf
> ("pinko_pdf")nella directory
> 1a procedura. Ho creato la tabella con un campo testo nel quale poi
> ho
> successivamente inserito il percorso del file pdf di mio interesse:
> il
> percorso compare nel corrispondente campo della tabella, ma non viene
> richiamato nè riesco a far sì che venga visualizzato.
>
> create table provapdf (
>  id integer not null primary key autoincrement,
>  type text not null,
>  document text not null)
>
> insert into provapdf (id, type, document)
> values (null, "pdf", "C:\Users\prova\pinko_pdf")
>

ok; a questo punto pero' ti serve un qualche componente
software che compia le seguenti azioni:
1) recuperi quel path dalla colonna del DB
2) e quindi provveda a lanciare un qualsiasi PDF viewer
    passandogli quel path.


> 2a procedura. Ho creato un'altra tabella con un campo blob con la
> seguente
> sintassi:
>
> create table provapdf1 (
>  id integer not null primary key autoincrement,
>  type text not null,
>  document blob)
>
> come posso memorizzare direttamente il file pdf o documento nella
> colonna
> blob?
>

puoi farlo in tanti modi diversi:
a) ti sviluppi un componente sw che legge il tuo PDF, si crea
    un buffer in RAM e lo inserisce in quel BLOB
b) volendo, lo puoi fare anche in puro SQL:

INSERT INTO provapdf1 (id, type, document) VALUES
   ( 1, 'qualcosa', BlobFromFile('C:/Users/prova/pinko.pdf') );

just in case: ricordati che BlobFromFile() e' soggetta a
restrizioni di sicurezza; per abilitarla dovrai impostare
questa variabile di ambiente:
SPATIALITE_SECURITY=relaxed


> Considerata la mia poca esperienza è quasi certo che stia sbagliando
> o
> saltando qualcosa, qualcuno potrebbe aiutarmi a capire dove?

che succede dopo che hai caricato il PDF nel BLOB ?
hai semplicemente spostato un po' di bytes da una parta
all'altra; ma restano semplicemente bytes.
almeno fino a quando non li passi ad un qualche PDF viewer,
che provvedera' opportunamente ad interpretare quel mucchietto
di bytes tirarci fuori un PDF visualizzabile.

cioe', in soldoni, ti dovrai comunque scrivere un plugin o
qualcosa di analogo per coordinare tutte le azioni; e ti
serve anche utilizzare un qualche componente PDF viewer.

personalmente non l'ho mai utilizzato, ma vedo che Poppler [1]
dovrebbe essere in grado di visualizzare un PDF in ambiente
Qt; e quindi non pare affatto impossibile sviluppare p.es.
un plugin per QGIS.
ma serve comunque un discreto lavoro di sviluppo, e serve
scrivere codice ad hoc.

[1] http://doc.qt.digia.com/qq/qq27-poppler.html

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
Reply | Threaded
Open this post in threaded view
|

Re: Documenti su Spatialite

pcav
Il 05/05/2014 19:00, [hidden email] ha scritto:

> Qt; e quindi non pare affatto impossibile sviluppare p.es.
> un plugin per QGIS.
> ma serve comunque un discreto lavoro di sviluppo, e serve
> scrivere codice ad hoc.

oppure usi le azioni di QGIS.
saluti.

--
Paolo Cavallini - www.faunalia.eu
Corsi QGIS e PostGIS: http://www.faunalia.eu/training.html
_______________________________________________
[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
Reply | Threaded
Open this post in threaded view
|

Re: Documenti su Spatialite

Beppe
In reply to this post by a.furieri
Sicuramente, come già dicesti nella precedente, la procedura 2 è la più razionale e quella che vorrei utilizzare.
Ma come si fa concretamente ad impostare le variabili di ambiente? E' qualcosa che posso fare anche essendo digiuno di programmazione e poco esperto su spatialite?
Reply | Threaded
Open this post in threaded view
|

Re: Documenti su Spatialite

a.furieri
On Mon, 5 May 2014 10:39:15 -0700 (PDT), Beppe wrote:
> Sicuramente, come già dicesti nella precedente, la procedura 2 è la
> più
> razionale e quella che vorrei utilizzare.
> Ma come si fa concretamente ad impostare le variabili di ambiente? E'
> qualcosa che posso fare anche essendo digiuno di programmazione e
> poco
> esperto su spatialite?
>

non c'entra nulla spatialite ed ancor meno la programmazione:
le variabili di ambiente sono qualcosa di assolutamente
fondamentale in qualsiasi sistema operativo, Windows compreso.
p.es. quando su Windows scopri che non riesce a trovarti le
DLL la dove tu ti aspetti, la causa e' quasi sempre che la
variabile d'ambiente PATH non e' correttamente impostata.

su tutti i sistemi operativi "sane minded" (Linux, *nix)
le variabili d'ambiente si impostano normalmente dalla
shell tramite una direttiva standard come questa:

export "SPATIALITE_SECURITY=relaxed"

su altri sistemi "piu' fantasiosi" (p.es. Win) gestire le
variabili d'ambiente e' spesso una corsa a ostacoli; lo puoi
fare in un sacco di modi diversi (compreso da interfaccia
grafica), e dipende fortemente da quale shell utilizzi,
quale versione di Win etc

ad ogni modo, prova un po' a leggere qua:
http://it.wikipedia.org/wiki/Variabile_d%27ambiente_%28Unix%29
http://it.wikipedia.org/wiki/Variabile_d%27ambiente_%28Windows%29

p.es. se usi il CMD di Win (finestra nera DOS) immagino che
dovrebbe essere qualcosa di questo tipo:

set SPATIALITE_SECURITY=relaxed

-----

oppure (semmre ammesso che tu usi Win) ti consiglio di
installarti MSYS [1] e cosi' finalmente potrai usare una
shell standard linux-like anche su Win (esattamente come
faccio personalmente io; caldamente consigliato).
ma forse potresti trovarti MSYS addirittura gia' installato
by default, perche' dovrebbe far parte dei pacchetti standard
OSGeo4W

[1] http://www.mingw.org/wiki/MSYS

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