[Gfoss] stili incorporati in spatialite

a.furieri a lqt.it a.furieri a lqt.it
Ven 23 Set 2016 09:38:10 CEST


On Thu, 22 Sep 2016 17:08:21 +0200, Stefano Salvador wrote:
> Ciao a tutti,
>
> in questi giorni stavo sperimentando con gli stili incorporati in
> spatialite ed ero un po' perplesso riguardo al supporto fornito dai 
> vari
> software cartografici.
>
> Se non sbaglio ci sono due metodi per incorporare uno stile in file
> spatialite:
>
> 1. Salvandolo con QGIS
> 2 Usando le apposite API di Spatialite
>

Ciao Stefano,

giusto per puntualizzare e per mettere in luce un punto fondamentale:
SpatiaLite e' semplicemente un'estensione di SQLite, e SQLite e' un
DBMS generico che consente di fare praticamente di tutto senza
alcuna restrizione funzionale.

Sarebbe quindi sempre opportuno fare un distinguo tra funzionalita'
supportate da SpatiaLite (nel senso che richiedono necessariamente
il caricamento del modulo di estensione mod_spatialite per funzionare
correttamente) e funzionalita' genericamente basate sul solo SQLite,
che quindi funzionano anche quando la libreria di estensione non
e' presente.

Capisco che dal punto di vista utente questa distinzione puo'
sembrare capziosa, ma nel caso specifico ci aiuta a capire che in
effetti SpatiaLite "vanilla" supporta un unico meccanismo per gli
stili SLD/SE, quello nativo.

La soluzione degli stili QGIS invece non ha nulla a che fare con
SpatiaLite, perche' si basa semplicemente sui generici meccanismi
base di SQLite.
Nulla vieta di inserire gli stili QGIS in un DB SQLite che contenga
geometrie SpatiaLite, ma almeno in linea di principio li potresti
tranquillamente inserire anche in qualunque altro DB SQLite non
predisposto per SpatiaLite.
Gli stili QGIS sono insomma un subset funzionale totalmente avulso
dal main-core SpatiaLite; possono tranquillamente coabitare nel
medesimo DB-file, ma si ignorano a vicenda.


> Purtroppo i due metodi sono incompatibili in quanto QGIS ha optato 
> per un
> proprio formato che ha qualche limite:
>
> 1. le risorse esterne (icone, ...) si possono inserire solo come 
> percorso
> assoluto
> 2. non è possibile includere nel db gli eventuali file delle 
> simbologie
> 3. solo QGIS è in grado di leggerlo e gestirlo
>
> il formato "nativo" invece è completo e ben fatto ma da quello che 
> vedo
> nessun software GIS lo supporta.
>

Stefano, mi piacerebbe tanto potere prendere questa tua affermazione
come un complimento per SpatiaLite, ma purtroppo devo respingere il
complimento al mittente.
l'implementazione "nativa" per gli stili non pretende di avere nessun
merito particolare cosi' come non pretende affatto di essere 
innovativa;
e' semplicemente un'implementazione pedante e per nulla fantasiosa 
dello
standard OGC per gli stili SLD/SE, basata sul rispetto stretto e 
rigoroso
di tutti i vincoli imposti dagli schemi XSD "ufficiali" pubblicati da 
OGC.

l'unica "variante fuori ordinanza" introdotta dal support SLD/SE di
SpatiaLite consiste in un'interpretazione estensiva del concetto di
URL (che dopo tutto significa letteralmente Uniform Resource Locator),
in modo tale da potere utilizzare queste pseudo-URL come classici
riferimenti relazionali Primary/Foreign Key, riuscendo cosi' a poter
caricare tutte le risorse grafiche (bitmaps, SVG) direttamente
all'interno di un singolo DB-file monolitico e sopprimendo alla
radice ogni necessita' di utilizzare risorse esterne ubicate sul
filesystem.


> Il mio obiettivo sarebbe quello di impacchettare un file da 
> distribuire che
> sia un minimo interoperabile (mi starebbe anche bene usare solo QGIS 
> ma con
> i percorsi assoluti diventa difficile spostare il file da un PC ad un
> altro).
>
> Se guardiamo alle sole geometrie questo obiettivo è raggiunto 
> (spatialite
> viene letto anche da molti sw commerciali) ma per gli stili ancora 
> ognuno
> va per la sua strada sebbene un sottoinsieme di feature ormai è 
> comune tra
> tutti i software.
>
> Qualcuno ha qualche esperienza a riguardo?
>

per quanto a mia conoscenza personale, l'unico sw che e' attualmente
in grado di sfruttare pienamente lo styling SLD/SE "nativo" e'
rappresentato da RasterLite2 (purtroppo ancora in fase si sviluppo).

a suo tempo, quando nel 2013 SpatiaLite 4.1.0 introdusse il supporto
SLD/SE si apri' uno spazio potenzialmente interessante per integrare
le nuove funzionalita' direttamente in QGIS (lo sviluppo lato splite
precede storicamente di qualche mese lo sviluppo lato QGIS).

Purtroppo poi le cose hanno preso un corso differente e QGIS alla
fine ha preferito implementare un proprio meccanismo interno non
standard ed incompatibile col resto del mondo ... peccato, perche'
cosi' e' andata persa una buona occaione per provare a standardizzare
quella che e' la vera torre di babele che affligge tutte le
applicazioni GIS, cioe' le millemila implementazioni difformi e
reciprocamente incompatibili per lo styling.

ciao Sandro


Maggiori informazioni sulla lista Gfoss