Ir para o conteúdo

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

Modo de edição híbrida
Modo de edição híbrida

Base de dados Offline

Modo offline com sincronização desktop

Modo de edição offline
Modo de edição offline