Usi GeoPackage invece di SpatiaLite e viceversa?


36

Sto usando QGIS 2.18, che include il supporto per il formato GeoPackage.

So che GeoPackage è come un sostituto di Shapefile, ma non del tutto, poiché GeoPackage ha funzionalità di database. Allo stesso tempo, GeoPackage non è un sostituto completo di SpatiaLite, perché non ha query e funzioni spaziali. Inoltre, Spatialite supporta GeoPackage.

Quindi, nel contesto della modifica di QGIS, quando ha senso usare GeoPackage (e accedere a GeoPackage dalle attività SpatiaLite per Spatial SQL), e quando è meglio usare solo Spatialite?


1
Sono interessato anche a questa domanda. Tieni presente che il supporto di geopackage è attualmente limitato a causa di un bug di blocco dopo la prima modifica.
hilpers,

Ma questo è già stato risolto ?! Non ho riscontrato problemi con il 2.18.
Matte,

Sfortunatamente, utilizzo 2.18.3
hilpers il

L'ho provato con 2.18.3 con la procedura scritta nel vecchio bug tracker e non sono riuscito a riprodurlo. In quali circostanze hai riscontrato il problema?
Matte

Ricevo anche il bug di blocco dopo la prima modifica con GeoPackage ma solo quando utilizzo la nuova importazione DWG / DXF in 2.18.3. Posso importare con successo il DWG e inizialmente modificare il GeoPackage creato (ad es. Per georeferenziarlo con il plugin Vector Bender). Ma una volta chiuso il progetto QGIS e riaperto, il pulsante di modifica attiva / disattivata è disattivato e GeoPackage non può più essere modificato.
Rob Willson,

Risposte:


33

Un piccolo confronto tra GeoPackage e SpatiaLite in QGIS. Al momento non è davvero produttivo utilizzare GeoPackage con QGIS. Può cambiare piuttosto velocemente però (vedi aggiunte!).

Alcune aggiunte riguardanti il ​​nuovo alias QGIS 2.99 QGIS 3, novembre 2017 (anche aggiunto in confronto): GeoPackage ora funziona quasi senza problemi in QGIS 3. Si sono verificati alcuni problemi minori che potrebbero riguardare la versione per sviluppatori QGIS. Anche il problema più problematico per SpatiaLite è risolto. Le colonne possono essere eliminate ora senza ulteriori soluzioni alternative. Entrambi non supportano ancora la scrittura raster tramite la GUI, il che non è un grosso problema in quanto i raster in un database non sono l'intenzione principale. Entrambi i formati sono formati di lavoro davvero buoni. L'obiettivo di GeoPackage è il formato di trasporto e per SpatiaLite un semplice sistema di database basato su file con molti strumenti per la creazione di un archivio dati locale (poiché è più un RDBMS che un formato file).

Entrambi hanno:

  1. transazionale
  2. SQL e viste (ma le viste sono implementate diversamente nell'uso del software)
  3. livelli vettoriali "tutto in uno", simbologia e testo, raster
  4. tabelle di attributi con quasi nessuna restrizione rispetto allo shapefile
  5. Di tanto in tanto è necessario un VUOTO (archiviazione di dati specifici del database)
  6. la maggior parte dei tipi di geometria (come le curve)

GeoPackage:

  1. è uno standard OGC basato su SQLite, significa che l'implementazione dovrebbe essere più coerente nei diversi software; ad esempio, la simbologia potrebbe funzionare in QGIS e ArcMap in futuro quando verranno utilizzati gli stili SLD
  2. piuttosto giovane (2014), con alcuni problemi con QGIS fino alla 2.18 (aggiornamento: buon supporto in QGIS 3)
  3. consente una facile rimozione delle colonne in QGIS per gli utenti "normali" che si oppongono a SpatiaLite
  4. in questo momento DB-Manager non funziona molto bene con esso e il supporto raster è limitato alla lettura di un singolo raster integrato (nessuna scrittura in esso) (usando QGIS 2.18.3) (aggiornamento: DB-Manager ora funziona bene con geopackage)
  5. visualizzazioni che non funzionano in QGIS, ma tramite il livello virtuale non sono un problema eccessivo quando non vengono utilizzate per la condivisione tra molti utenti (aggiornamento: ancora nessuna vista poiché QGIS 3 può effettivamente creare visualizzazioni ma non può leggerle in seguito)
  6. gli strumenti di geoprocessing non consentono di aggiungere file esistenti (sostituiscono solo l'intero file) (aggiornamento: funziona ora)

SpatiaLite:

  1. è un'estensione di SQLite, implementata diversamente nel software GI (principalmente a causa di problemi di driver e versione)
  2. molto più vecchio e finora meglio integrato in QGIS
  3. in QGIS non è possibile eliminare le colonne senza una query SQL non complicata, ma per alcuni utenti già troppo "codice" (aggiornamento: QGIS 3 lo fa ora)
  4. file piuttosto grande quando ha solo una mano piena di geometrie, non abbastanza buona per il formato di trasporto ma per l'archiviazione del database locale (inizia con qualcosa di circa 5 MB)
  5. Molti strumenti aggiuntivi (viste, possono creare reti stradali, molti formati di importazione / esportazione, ST_Queries e altro)

Intendi utilizzare GeoPackage o SpatiaLite solo con QGIS o anche con altri software? SpatiaLite supporta anche tutto questo gaia-gis.it/gaia-sins/spatialite-sql-latest.html standalone senza QGIS.
user30184,

Uso principalmente SpatiaLite insieme a QGIS, ma anche con SpatiaLite-GUI. Lo presento nei miei corsi di formazione per QGIS. L'unico punto è il problema dell'eliminazione delle colonne per i principianti. Non lo introduco nei corsi di formazione ArcGIS in quanto hanno il FileGeodatabase lì che è obbligatorio in alcune autorità (nel 10% dove non è lo shapefile che è ancora allo stato dell'arte ...). Ho iniziato ad annunciare GeoPackage nei corsi avanzati di QGIS, ma con gli svantaggi scritti sopra. Ma poiché GDAL ha una buona implementazione, non può passare molto tempo prima che QGIS disponga dei pulsanti necessari.
Matte

Come dici tu, il tuo confronto riguarda l'uso di QGIS. Vorrei sottolineare che giudicare se SpatiaLite o GeoPackage è migliore dal caso "drop column" è molto specifico per QGIS. SQLite non supporta direttamente questa operazione sqlite.org/lang_altertable.html . Le stesse soluzioni alternative funzionano sia per SpatiaLite che per GeoPackage, anche se alcuni software potrebbero non avere i pulsanti.
user30184,

1
L'ho inserito nel contesto della domanda originale su QGIS. Il punto con la colonna è stato un esempio in cui spero che lo standard porti a un uso più coerente nei programmi in quanto questo è un argomento per l'utente "normale". Non sono sicuro se questo sarà possibile con SpatiaLite poiché il livello di integrazione è così diverso anche dopo diversi anni. Alla fine per me porterà al punto in cui potrebbe essere un nuovo formato di trasporto standardizzato (GeoPackage). SpatiaLite è molto più simile a un GIS con le sue funzioni integrate (query ST, molte opzioni di importazione dei dati, rete ...).
Matte

Entrambi, GeoPackage e SpatiaLite sono basati su SQLite.
Matthias Kuhn,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.