Documentação do Sistema QFieldCloud¶
O objetivo deste documento é fornecer uma visão geral do sistema QFieldCloud para entender a lógica e a tecnologia subjacentes.
Entidades e Conceitos¶
Projeto QGIS¶
Um projeto QGIS é um ficheiro .qgs ou .qgz. Um projeto é criado no QGIS Desktop e carregado para QFieldCloud usando o plugin do QGIS QFieldSync. Antes do upload do projeto QGIS, é necessário para cada camada do projeto QGIS uma "ação" que determina como o QFieldSync e o QField devem tratar a camada. Existem dois tipos de ações que podem ser configuradas - uma para QFieldCloud e outra para a tradicional exportação por cabo.
A informação é guardada dentro dos projetos QGIS como camadas customProperty , com a chave QFieldSync/action.
As ações disponíveis são:
Nome interno da ação | Nome exibido na interface UI |
---|---|
OFFLINE | Consolidar |
SEM_AÇÃO | Camada em tempo real |
REMOVER | Ignorar camada |
COPIAR | Copiar |
MANTER_EXISTENTES | Manter Existentes |
Este será o comportamente do QFieldSync com as diferentes ações da camada:
Ação | Camada baseada num ficheiro | Camada não baseada num ficheiro |
---|---|---|
OFFLINE | Cria uma cópia consolidada dos dados | Cria uma cópia consolidada dos dados |
SEM_AÇÃO | N/A | Sem ação na camada |
REMOVER | Remover a camada do projeto | Remover a camada do projeto |
COPIAR | Torna o caminho da fonte relativo e copia o ficheiro | N/A |
MANTER_EXISTENTES | Torna o caminho da fonte relativo e copia o ficheiro se este não existir | N/A |
Este é o comportamento do QFieldCloud (libqfieldsync
) com as
camadas:
Ação | Camada baseada num ficheiro | Camada não baseada num ficheiro |
---|---|---|
OFFLINE | Crie uma cópia consolidada dos dados no pull, aplique um ficheiro delta no push à fonte de dados original | Crie uma cópia consolidada dos dados no pull, aplique um ficheiro delta no push à fonte de dados original |
SEM_AÇÃO | N/A | Sem ação na camada |
REMOVER | Remover a camada do projeto | Remover a camada do projeto |
COPIAR | Torna o caminho de origem relativo e crie uma cópia dos dados no pull, apliqua o ficheiro delta no push à fonte de dados original | N/A |
MANTER_EXISTENTES | Torna o caminho de origem relativo e crie uma cópia dos dados no pull, apliqua o ficheiro delta no push à fonte de dados original | N/A |
Este é o comportamento do QField com as camadas:
Ação | Camada baseada num ficheiro | Camada não baseada num ficheiro |
---|---|---|
OFFLINE | Cria e faz push do deltafile | N/A (nesta fase é sempre baseado num ficheiro) |
SEM_AÇÃO | N/A | Editar a base de dados online (produtivo) |
REMOVER | N/A (a camada já não reside no local) | N/A (a camada já não reside no local) |
COPIAR | Cria e faz push do deltafile | N/A |
MANTER_EXISTENTES | Cria e faz push do deltafile | N/A |
Resumindo, para o QFieldCloud:
- NO_ACTION é usado para camadas online localizadas num servidor acessíveis via Internet e que são modificados diretamente por QField.
- HYBRID significa que um geopackage será gerado no servidor (ou diretamente na área de trabalho para camadas baseadas num ficheiro) e transferidos pelos clientes. O cliente irá gerar os deltafiles das alterações.
- OFFLINE é usado, por exemplo, para trabalhar com dados locais não visíveis pelo QFieldCloud que são consolidados antes de serem carregar a partir do computador para o servidor e não estão sincronizados com os dados originais pelo QFieldCloud.
- REMOVE irá simplesmente remover a camada do projeto.
- KEEP_EXISTENT não será usado nas sincronização do QFieldCloud.
A partir do QFieldSync será possível atualizar um projeto já carregado no QFieldCloud. Caso as alterações digam respeito apenas estilos, formulários, etc., mas não à estrutura das camadas, o projeto no servidor será simplesmente atualizado. Caso haja alterações na estrutura de camadas, o projeto será redefinido no servidor (ficheiros delta serão excluídos) e para cada cliente será necessário baixar a versão atualizada do projeto antes de poder enviar novas alterações.
Project QFieldCloud¶
É composto por um e apenas um projeto QGIS e os possíveis
ficheiros relacionados (e.g. geopackages, imagens, ...) incluídos offline
ou nos packages de dados hýbridos.
Casos de uso¶
Híbrido¶
Modo de edição híbrida com sincronização no servidor
Base de dados Offline¶
Modo offline com sincronização desktop