Synchroniser un projet entre son ordinateur et son téléphone
Bon, le projet est prêt, les formulaires sont beaux, la symbologie réactive fait rougir de jalousie vos "camarades" (et concurents aux concours, la dure vie de l'ESR
), c'est le moment de tout envoyer sur votre téléphone et d'aller prospecter sous la pluie bretonne
. Mais avant ça, il faut comprendre comment les fichiers circulent entre l'ordinateur et l'appareil portable, parce que c'est là que ça peut vite devenir galère si on n'a pas anticipé.
Les grandes stratégies
Il y a globalement trois façons de faire :
- Le transfert manuel : on copie les fichiers à la main (USB, gestionnaire de fichiers, etc.). C'est simple, ça ne dépend d'aucun service tiers, ça marche sans connexion internet. C'est ce qu'on va surtout voir ici.
- Le plugin QFieldSync : un plugin QGIS qui prépare un paquet de terrain (package) depuis votre projet, puis fusionne les données collectées au retour. C'est la solution recommandée quand on travaille à plusieurs équipes en parallèle ou dans des contextes hors ligne : chaque équipe repart avec sa propre copie du projet, et QFieldSync se charge de réconcilier tout ça proprement après. On en parle plus bas.
- QFieldCloud : un service en ligne dédié à la synchronisation entre QGIS et QField. C'est confortable quand on a une connexion fiable et qu'on veut éviter les manipulations de fichiers. On en parlera brièvement, mais ce n'est pas le cœur de ce support.
Transfert manuel 
Préparer le dossier du projet
Un projet QField, c'est au minimum deux fichiers (c'est le projet QGIS quoi) :
- Le fichier de projet QGIS (
.qgzou.qgs) - Le GeoPackage (
.gpkg) contenant la base de données
Ces deux fichiers doivent vraiment être dans le même dossier. Si vous avez des photos ou d'autres ressources liées (images de fond, fichiers de style externes, etc.), ils doivent être dans ce même dossier ou des sous-dossiers relatifs. Par exemple, si vous prenez des photos avec votre projet QField, l'application va créer un dossier DCIM dans le dossier du projet, ce sera donc un sous-dossier. Si vous gardez le dossier DCIM au même emplacement relatif quand vous copiez votre projet sur votre ordinateur, les photos continueront d'appraître, sinon, bah elles apparaîtront pas, c'est la vie alors qu'il suffisait de m'écouter. 
C'est une bonne habitude d'avoir un dossier propre dédié au projet de terrain, séparé de vos autres fichiers de travail. Ça facilite énormément les transferts et ça évite de se perdre.
Copier le dossier sur le téléphone
La méthode varie selon le système d'exploitation de votre ordinateur et le téléphone :
- Android : branchez le téléphone en USB, choisissez le mode "transfert de fichiers" et copiez votre dossier dans un endroit accessible sur votre, par exemple
Documents/QField/ouQField/projects/, simple.
- iOS : c'est plus compliqué (voir page d'installation), mais vous pouvez passer par iTunes, AirDrop, ou des services cloud comme iCloud ou Nextcloud ou d'autres trucs relous parce que vous avez un téléphone de bourgeois.

- Via un service cloud (Nextcloud, Google Drive, Dropbox...) : vous pouvez aussi synchroniser un dossier partagé entre votre ordinateur et votre téléphone. Dans ce cas, l'application cloud se charge du transfert et vous n'avez plus à brancher de câble.
.
Charger le projet dans QField
Une fois le dossier copié sur l'appareil, dans QField : Local projects and datasets → petite croix en bas à droite → Import project from folder, puis naviguez jusqu'à votre dossier. QField charge le projet et vous devriez retrouver votre symbologie, vos formulaires, tout le tintouin. :partying_face:
Travailler sur le terrain
Une fois sur le terrain, QField travaille directement sur le GeoPackage. Chaque saisie est enregistrée immédiatement dans le fichier. Pas besoin de "sauvegarder" à la main, c'est la base de données qui fait son travail de base
.
C'est une bonne idée de faire une copie de sauvegarde du GeoPackage avant de partir sur le terrain. Comme ça, si vous faites une bêtise ou que votre téléphone décide de nager dans la rivière
, tout n'est pas tout perdu.
Récupérer les données après la prospection
Recopier le GeoPackage
Une fois de retour, il faut transférer le GeoPackage modifié de votre téléphone vers votre ordinateur. Même méthode qu'à l'aller : USB ou service cloud. Attention, si vous avez aussi modifié le GeoPackage sur l'ordinateur pendant que vous étiez sur le terrain (ce qui est une mauvaise idée, mais ça arrive
), vous allez avoir un problème de fusion des données (avec les clés primaires qui sont en conflit :duck:). On y revient juste après.
Ne remplacez pas directement votre fichier de référence sur l'ordinateur par celui du téléphone sans vérifier. Gardez les deux, comparez, fusionnez proprement. Votre projet sur l'ordinateur, c'est pas une mouche que vous écrasez avec une tapette incarnée par votre nouveau projet !
Le problème de la fusion (merge)
Si une seule personne a travaillé et que le GeoPackage sur l'ordinateur n'a pas été touché pendant la prospection, c'est simple : vous remplacez l'ancien GeoPackage par celui du téléphone et c'est réglé.
Si plusieurs personnes ont prospecté en parallèle avec des copies séparées du GeoPackage, ou si des modifications ont été faites sur l'ordinateur en même temps, il faut fusionner les données. Il n'y a pas de méthode magique, mais voici quelques pistes :
- Copier-coller dans la table attributaire : dans QGIS, on ouvre les deux GeoPackages côte à côte (le fichier de référence et le fichier du terrain), on sélectionne les nouvelles entités dans l'un et on les copie-colle dans l'autre. C'est laborieux mais ça marche bien pour de petits volumes.
- DB Manager / requêtes SQL : pour des volumes plus importants ou des cas compliqués, on peut passer par le gestionnaire de bases de données de QGIS et écrire des requêtes pour insérer les nouvelles lignes. C'est plus technique mais bien plus efficace.
- Eviter le problème en amont : le plus simple reste d'organiser le travail pour que chaque équipe ait ses propres entités à saisir (par zone, par personne...) et que les GeoPackages ne se marchent pas dessus. Un peu d'organisation avant le terrain évite bien des migraines après
.
QFieldSync (équipes parallèles et hors ligne)
Le plugin QFieldSync s'installe dans QGIS comme n'importe quel autre plugin : Extensions → Installer/Gérer les extensions → cherchez "QFieldSync". Une fois installé, il ajoute un bouton dans la barre d'outils.
Préparer le paquet de terrain
Depuis QGIS, QFieldSync → Package for QField. Le plugin crée un dossier autonome contenant une copie du projet et du GeoPackage, optimisée pour le terrain. C'est ce dossier que vous copiez sur chaque téléphone. L'avantage par rapport au transfert manuel : le plugin vérifie la compatibilité du projet et vous prévient si quelque chose risque de poser problème avant même de partir sur le terrain
.
Pour le travail en équipes parallèles, chaque équipe reçoit sa propre copie du paquet. Chacune va collecter ses données de son côté, sans que les fichiers ne se croisent sur le terrain.
Synchroniser au retour
Au retour du terrain, QFieldSync → Synchroniser depuis QField. Le plugin compare le projet de référence et le paquet rapporté du terrain, puis fusionne les nouvelles entités. Il gère notamment les conflits simples et vous signale les cas ambigus. C'est nettement plus propre que le copier-coller manuel dans la table attributaire, surtout quand plusieurs équipes ont travaillé en même temps
.
Si plusieurs équipes ont travaillé en parallèle, il faut synchroniser les paquets les uns après les autres, pas en même temps. QFieldSync ne fusionne qu'un paquet à la fois dans le projet de référence.
Pour éviter les problèmes et tout écraser n'importe comment et se retrouver à devoir tout recommencer et travailler toute la soirée à cause d'un abruti qui a fait une erreur alors que tout le monde prend sa bière de fin de journée
→ j'ai ma petite organisation. Dans l'ordinateur j'ai deux dossiers de synchronisation, un en sortie et l'autre en entrée. Dans le téléphone, c'est le dossier depuis lequel on a importé le projet. La manip est la suivante | ordinateur | →
Package project for QField→ | sync. sortie | → | Qfield dans le téléphone | → | import dans l'appli QField | j'efface le projet du dossier dans le téléphone | → | export du projet depuis l'appli QField vers le dossier du téléphone | → copie dans le dossier sync. entrée | → | `Synchronize from QField | Et là on est bons normalement !
QFieldCloud (survol)
QFieldCloud est le service officiel de synchronisation développé par l'équipe de QField. Il s'appuie sur un serveur (celui de OPENGIS.ch par défaut, ou votre propre instance si vous êtes du genre à héberger vos services, mais si c'est la cas, peu de chances que vous consultiez ce site donc...
) et gère lui-même les conflits basiques de synchronisation.
Le principe : vous déposez votre projet sur QFieldCloud depuis QGIS (via le plugin QFieldSync), vous le récupérez sur QField via l'option QFieldCloud project au démarrage, vous travaillez sur le terrain, et au retour vous synchronisez. Les nouvelles données remontent automatiquement dans le projet QGIS.
C'est clairement la solution la plus confortable pour un usage régulier ou en équipe, mais elle demande :
- Une connexion internet au moment de la synchronisation (pas forcément sur le terrain, mais au départ et au retour)
- L'installation du plugin QFieldSync dans QGIS
- Un compte QFieldCloud (gratuit pour un usage basique)
Je ne détaille pas davantage ici, mais la documentation officielle est bien faite si vous voulez aller plus loin.
Résumé du flux de travail
Pour récapituler le cycle de vie d'un projet de terrain sans QFieldCloud :
- Sur l'ordinateur
: on prépare le projet QGIS + GeoPackage. - Sauvegarde
: on fait une copie du GeoPackage (au cas où). - Transfert
: on copie le dossier sur le téléphone (USB ou cloud). - Sur le terrain
: on saisit les données dans QField. - Retour
: on retransfère le GeoPackage modifié sur l'ordinateur. - Fusion :melting_face: (si nécessaire) : on intègre les nouvelles données dans le GeoPackage de référence.
- Vérification
: on ouvre le tout dans QGIS et on vérifie que tout est bien là
.
Et on recommence (pas d'émoticone Sisyphe, faudra l'imaginer...). C'est la vie du terrain, c'est beau
.
C'est une bonne habitude d'avoir un dossier propre dédié au projet de terrain, séparé de vos autres fichiers de travail. Ça facilite énormément les transferts et ça évite de se perdre.
, tout n'est pas tout perdu.
Ne remplacez pas directement votre fichier de référence sur l'ordinateur par celui du téléphone sans vérifier. Gardez les deux, comparez, fusionnez proprement. Votre projet sur l'ordinateur, c'est pas une mouche que vous écrasez avec une tapette incarnée par votre nouveau projet !
Pour éviter les problèmes et tout écraser n'importe comment et se retrouver à devoir tout recommencer et travailler toute la soirée à cause d'un abruti qui a fait une erreur alors que tout le monde prend sa bière de fin de journée
→ j'ai ma petite organisation. Dans l'ordinateur j'ai deux dossiers de synchronisation, un en sortie et l'autre en entrée. Dans le téléphone, c'est le dossier depuis lequel on a importé le projet. La manip est la suivante | ordinateur | →