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 |
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 |
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 |
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 |
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 |
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 |
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? |
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 |
Free forum by Nabble | Edit this page |