Vai al contenuto

Documentazione di sistema QFieldCloud

Lo scopo di questo documento è quello di fornire una panoramica del sistema QFieldCloud per comprendere la logica e la tecnologia sottostante.

Entità e concetti

Progetto QGIS

Un progetto QGIS è un file .qgs o .qgz. Un progetto viene creato su QGIS Desktop e caricato su QFieldCloud utilizzando il plugin di QGIS QFieldSync. Prima di caricare il progetto QGIS, è necessario che per ogni layer del progetto QGIS sia definita un'"azione" che determina il modo in cui QFieldSync e QField devono trattare il layer. Esistono due tipi di azioni che possono essere impostate: una per QFieldCloud e una per l'esportazione tradizionale via cavo.

Queste informazioni vengono salvate all'interno del progetto QGS come customProperty, con la chiave QFieldSync/action.

Le azioni disponibili sono:

Nome interno dell'azione Nome visualizzato nell'interfaccia utente
OFFLINE Consolidate
NO_ACTION Live layer
RIMUOVI Ignora il layer
COPIA Copia
KEEP_EXISTING Keep Existing

Questo sarebbe il comportamento di QFieldSync con le azioni dei diversi layer:

Azione Layer basato su file Layer non basato su file
OFFLINE Crea una copia consolidata dei dati Crea una copia consolidata dei dati
NO_ACTION N/D Nessuna azione sul layer
RIMUOVI Rimuovi il layer dal progetto Rimuovi il layer dal progetto
COPIA Rendi il percorso sorgente relativo e copia il file N/D
KEEP_EXISTING Rendi relativo il percorso sorgente e copia il file se non esiste N/D

Questo è il comportamento di QFieldCloud (libqfieldsync) con i layer:

Azione Layer basato su file Non basato su file
OFFLINE Crea una copia consolidata dei dati al momento dell'estrazione, applica il file delta al momento del caricamento nella fonte di dati originale. Crea una copia consolidata dei dati al momento dell'estrazione, applica il file delta al momento del caricamento nella fonte di dati originale.
NO_ACTION N/D Nessuna azione sul layer
RIMUOVI Rimuovi il layer dal progetto Rimuovi il layer dal progetto
COPIA Rendi relativo il percorso dell'origine e crea una copia dei dati al momento dell'estrazione, applica il file delta all'origine dei dati al momento del caricamento. N/D
KEEP_EXISTING Rendi relativo il percorso dell'origine e crea una copia dei dati al momento dell'estrazione, applica il file delta all'origine dei dati al momento del caricamento. N/D

Questo è il comportamento di QField con i layer:

Azione Layer basato su file Layer non basato su file
OFFLINE Creare e caricare il deltafile N/A (a questo punto è sempre basato sui file)
NO_ACTION N/D Modifica il database online (live)
RIMUOVI N/A (il layer non è più presente) N/A (il layer non è più presente)
COPIA Creare e caricare il deltafile N/D
KEEP_EXISTING Creare e caricare il deltafile N/D

In sintesi, per QFieldCloud:

  • NO_ACTION è utilizzato per i layer online che si trovano su un server accessibili via Internet e che vengono modificati direttamente da QField.
  • HYBRID significa che verrà generato un geopackage sul server (o direttamente sul desktop per i livelli basati su file) e scaricati dai client. Il client genererà i deltafile delle modifiche.
  • OFFLINE è utilizzato, ad esempio, per lavorare con i database locali non visibili da QFieldCloud che vengono consolidati prima di essere caricati dal desktop al server e non vengono sincronizzati con i dati originali di QFieldCloud.
  • REMOVE rimuove semplicemente il layer dal progetto.
  • KEEP_EXISTENT non verrà utilizzato per le sincronizzazioni di QFieldCloud.

Da QFieldSync sarà possibile aggiornare un progetto già caricato su QFieldCloud. Nel caso in cui le modifiche riguardino solo stili, moduli ecc. ma non la struttura dei layer, il progetto sul server verrà semplicemente semplicemente aggiornato. Se ci sono cambiamenti nella struttura dei layer, il progetto verrà resettato sul server (i file delta verranno cancellati) e per ogni client sarà necessario scaricare la versione aggiornata del progetto progetto prima di poter apportare nuove modifiche.

Progetto QFieldCloud

È composto da un solo progetto QGIS e dagli eventuali file correlati (ad esempio, geopackage, immagini, ecc.) inclusi nel pacchetto dati offline o ibrido.

Casi d'uso

Ibrido

Modalità di modifica ibrida con sincronizzazione sul server

Modalità di modifica ibrida
Modalità di modifica ibrida

Database offline

Modalità di editing offline con sincronizzazione del desktop

Modalità di modifica offline
Modalità di modifica offline