Usando o GeoPackage em vez do SpatiaLite, e vice-versa?

36

Estou usando agora o QGIS 2.18, que inclui suporte para o formato GeoPackage.

Eu sei que o GeoPackage é como um substituto para o Shapefile, mas não tanto, pois o GeoPackage possui recursos de banco de dados. Ao mesmo tempo, o GeoPackage não é um substituto completo do SpatiaLite, porque não possui consultas e funções espaciais. Além disso, o Spatialite suporta o GeoPackage.

Portanto, no contexto da edição do QGIS, quando faz sentido usar o GeoPackage (e acessar o GeoPackage do SpatiaLite para tarefas SQL espaciais) e quando é melhor usar apenas o Spatialite?

Pahbloo Marks
fonte
11
Também estou interessado nesta questão. Lembre-se de que o suporte a geopackage é atualmente limitado devido a um bug de bloqueio após a primeira edição.
Hilpers
Mas isso já foi resolvido ?! Não encontrou problemas com o 2.18.
18717 Matte
Infelizmente, eu uso o 2.18.3
hilpers
Eu testei com a 2.18.3 com o procedimento escrito no rastreador de erros antigo e não consegui reproduzi-lo. Em que circunstâncias você pegou o problema?
24517 Matte
Também experimento o bug de bloqueio após a primeira edição com o GeoPackage, mas apenas quando uso a nova importação DWG / DXF na 2.18.3. Posso importar com sucesso o DWG e editar inicialmente o GeoPackage criado (por exemplo, para georreferenciá-lo com o plug-in Vector Bender). Mas assim que eu fechar o projeto QGIS e reabrir, o botão de alternância da edição ficará acinzentado e o GeoPackage não poderá ser editado novamente.
Rob Willson

Respostas:

33

Uma pequena comparação entre o GeoPackage e o SpatiaLite no QGIS. Até o momento, não é realmente produtivo usar o GeoPackage com o QGIS. Porém, pode mudar muito rápido (veja os complementos!).

Algumas adições relacionadas ao novo alias do QGIS 2.99 QGIS 3, novembro de 2017 (também adicionado em comparação): O GeoPackage agora funciona quase sem problemas no QGIS 3. Houve alguns problemas menores que podem estar relacionados à versão do desenvolvedor do QGIS. Também foi resolvido o problema mais problemático do SpatiaLite. As colunas podem ser excluídas agora sem nenhuma solução adicional. Ambos ainda não oferecem suporte à gravação de varredura por meio da GUI, o que não é um grande problema, pois rasters em um banco de dados não são a principal intenção. Ambos os formatos são realmente bons formatos de trabalho. O foco do GeoPackage é o formato de transporte e, para o SpatiaLite, um sistema de banco de dados fácil com muitas ferramentas para criar um armazenamento de dados local (já que é mais um RDBMS que um formato de arquivo).

Ambos têm:

  1. transacional
  2. SQL e visualizações (mas as visualizações são implementadas de maneira diferente no software em uso)
  3. camadas vetoriais "tudo em um", simbologia e texto, varredura
  4. tabelas de atributos com quase nenhuma restrição em comparação com o shapefile
  5. precisa de um VACUUM periodicamente (armazenamento de dados específico do banco de dados)
  6. a maioria dos tipos de geometria (como curvas)

GeoPackage:

  1. é um padrão OGC baseado em SQLite, significa que a implementação deve ser mais consistente em diferentes softwares; por exemplo, a simbologia pode funcionar no QGIS e no ArcMap no futuro quando estilos SLD forem usados
  2. muito jovem (2014), alguns problemas com ele no QGIS até a 2.18 (atualização: bom suporte no QGIS 3)
  3. permite fácil remoção de colunas no QGIS para usuários "normais" que se opõem ao SpatiaLite
  4. No momento, o DB-Manager não funciona muito bem com ele e o suporte a varredura é limitado à leitura de uma única varredura integrada (sem necessidade de gravar nele) (usando o QGIS 2.18.3) (atualização: o DB-Manager agora funciona bem com geopackage)
  5. visualizações que não funcionam no QGIS, mas via camada virtual não são um problema quando usadas para compartilhamento entre muitos usuários (atualização: ainda não há visualizações, pois o QGIS 3 pode realmente criar visualizações, mas não pode lê-las posteriormente)
  6. ferramentas de geoprocessamento não permitem anexar ao arquivo existente (substitui apenas o arquivo inteiro) (atualização: funciona agora)

SpatiaLite:

  1. é uma extensão do SQLite, implementada diferentemente no software GI (principalmente devido a problemas de driver e versão)
  2. muito mais antigo e até agora melhor integrado ao QGIS
  3. no QGIS, você não pode excluir colunas sem uma consulta SQL que não seja complicada, mas para alguns usuários já há "código" em excesso (atualização: o QGIS 3 faz isso agora)
  4. arquivo bastante grande quando há apenas uma mão cheia de geometrias, não muito bom como formato de transporte, mas para armazenamento local de banco de dados (começa com algo em torno de 5 MB)
  5. Muitas ferramentas adicionais (visualizações, podem criar redes de estradas, muitos formatos de importação / exportação, ST_Queries e mais)
Matte
fonte
Você planeja usar o GeoPackage ou SpatiaLite apenas com o QGIS ou com outro software também? O SpatiaLite também suporta todo este gaia-gis.it/gaia-sins/spatialite-sql-latest.html autônomo sem QGIS.
user30184
Eu uso principalmente o SpatiaLite junto com o QGIS, mas também com o SpatiaLite-GUI. Eu o introduzo nos meus cursos de treinamento para QGIS. O único ponto é o problema de excluir colunas para iniciantes. Eu não o introduzo nos treinamentos do ArcGIS, pois eles têm o FileGeodatabase lá que é obrigatório em algumas autoridades (nos 10%, onde não é o arquivo de forma que ainda é o estado da arte ...). Comecei a anunciar o GeoPackage nos cursos avançados do QGIS, mas com as desvantagens descritas acima. Mas como o GDAL tem uma boa implementação, não demorará muito para que o QGIS tenha os botões necessários.
Matte
Como você diz, sua comparação é sobre o uso do QGIS. Eu gostaria de enfatizar que julgar se SpatiaLite ou GeoPackage é melhor pelo caso "drop column" é muito específico do QGIS. O próprio SQLite não suporta essa operação diretamente sqlite.org/lang_altertable.html . As mesmas soluções alternativas funcionam para o SpatiaLite e o GeoPackage, mesmo alguns softwares podem perder os botões.
user30184
11
Coloquei-o no contexto da pergunta original, sobre o QGIS. O ponto da coluna foi um exemplo em que espero que o padrão leve a um uso mais consistente em programas, pois esse é um tópico para o usuário "normal". Não tenho certeza se isso será possível com o SpatiaLite, pois o nível de integração é tão diferente, mesmo depois de vários anos. No final, para mim, isso levará ao ponto em que poderá ser um novo formato de transporte padronizado (GeoPackage). O SpatiaLite é muito mais parecido com um SIG com suas funções integradas (consultas ST, muitas opções de importação de dados, rede ...).
24517 Matte
Tanto o GeoPackage quanto o SpatiaLite são baseados em SQLite.
Matthias Kuhn