Aller au contenu

Plugin QGIS

ALIGN Connector est un plugin QGIS qui publie ce que vous avez sur votre poste de travail dans le Datastore de votre organisation : une couche, plusieurs, ou le projet entier sous forme de carte web. Il porte votre identité, n’accorde jamais rien par lui-même, et vous montre ce que le serveur répond. C’est un logiciel libre (GPL), dont le code source est sur GitHub, et il dialogue avec ALIGN avec les mêmes autorisations que celles dont vous disposez dans le navigateur.

Le plugin est en bêta : il est distribué depuis le dépôt de plugins d’ALIGN lui-même, jusqu’à ce qu’il rejoigne le dépôt officiel de QGIS.

Le panneau ALIGN dans QGIS, vue Publish

  1. QGIS 3.22 ou plus récent, QGIS 4 compris (le plugin fonctionne sous Qt5 et Qt6 à partir d’une seule source ; il est développé sur la 3.44 LTR).
  2. Dans QGIS, Extensions → Installer/Gérer les extensions → Paramètres : cochez Show also experimental plugins, puis sous Dépôts d’extensions cliquez sur Ajouter avec le nom ALIGN et l’URL https://aligngeo.com/qgis/plugins.xml. De retour dans Toutes, recherchez ALIGN Connector et cliquez sur Installer l’extension. Les mises à jour arrivent ensuite comme celles de n’importe quel autre plugin. (Vous préférez un fichier ? La même adresse sert le ZIP, pour Installer depuis un ZIP.)
  3. Le plugin ajoute un seul bouton ALIGN à la barre d’outils : cliquez dessus pour ouvrir le panneau, ouvrez sa flèche pour Se connecter, Ouvrir ALIGN dans le navigateur et Settings. Les mêmes entrées se trouvent dans le menu Internet, et Publier sur ALIGN… figure dans le menu contextuel de toute couche vectorielle ou raster.

Rien d’autre à installer : aucun paquet Python, aucune clé à coller. Le plugin parle la langue dans laquelle QGIS fonctionne, l’anglais et le français à ce jour.

Internet → ALIGN → Se connecter à ALIGN… ouvre votre navigateur sur ALIGN, où vous approuvez la connexion, comme vous autoriseriez n’importe quelle application. QGIS reçoit un jeton limité à la seule publication : le plugin ne peut pas s’en servir pour lire, lister ni télécharger les données de votre organisation.

Deux choses encadrent cette connexion :

  • Votre organisation doit autoriser les plugins de bureau. Un propriétaire ou un administrateur l’active dans Settings → Integrations. D’ici là, une publication est refusée avec un message qui dit exactement cela.
  • Vous pouvez la révoquer à tout moment. Chaque QGIS connecté apparaît sur la vignette QGIS de Settings → Integrations, où vous le révoquez ; se déconnecter depuis QGIS la révoque aussi côté serveur.

Votre rôle décide de ce que vous pouvez faire, comme dans le navigateur : un lecteur ne peut pas publier. Voir Rôles.

L'écran des paramètres : compte et serveur

Ouvrez le panneau ALIGN (bouton de la barre d’outils, ou Publier sur ALIGN… sur une couche). La vue Publier liste les couches de votre projet dans l’ordre du panneau Couches ; cochez-en une, plusieurs, ou Tout le projet.

Pour chaque couche cochée, le panneau affiche un récapitulatif avant que quoi que ce soit ne quitte QGIS : combien d’entités seront écrites, si les coordonnées seront converties en WGS 84, ce que devient le style, quelles métadonnées voyagent. Lisez-le ; c’est le contrat de cette publication.

Choisissez ensuite :

  • Organisation, avec son stockage et ses crédits restants sous le sélecteur.
  • Titre, proposé à partir du titre de métadonnées de la couche quand elle en a un.
  • Visibilité : privé, pour vous seul, ou partagé avec l’organisation.
  • Description, pour la fiche de l’élément.
  • Publier seulement les entités sélectionnées, pour une couche vectorielle qui a une sélection.
  • Créer aussi une carte web avec ces couches : une fois toutes les couches arrivées, ALIGN compose une carte web avec l’ordre et la visibilité du panneau Couches (groupes aplatis), ouverte sur l’emprise que vous regardez, et la vue Activité vous en donne le lien.

Les fichiers volumineux continuent de s’importer en arrière-plan : vous pouvez continuer à travailler, et un transfert interrompu reprend là où il s’était arrêté. La vue Activité suit chaque publication et se termine par Ouvrir dans ALIGN.

Une couche que vous avez publiée garde, dans le fichier de projet, l’élément qu’elle est devenue : rouvrez le projet une semaine plus tard, corrigez la couche, publiez à nouveau, et le panneau indique Déjà sur ALIGN : publiée dans … le … avec Replace the item already on ALIGN coché. L’élément garde son identifiant, si bien que chaque carte web qui l’affiche montre la nouvelle version à son prochain chargement ; la version précédente est conservée sur ALIGN ; la ligne d’Activity nomme les champs attributaires ajoutés, supprimés ou dont le type a changé, parce qu’une fenêtre contextuelle ou un style qui lisait l’un d’eux demandera votre attention.

Décochez la case pour publier plutôt un nouvel élément. Un remplacement est refusé, avec sa raison et la même solution, quand vous n’avez pas le droit d’écrire dans l’élément (seul son créateur ou un administrateur de l’organisation le peut), quand l’export est dans un autre format que celui de l’élément, ou quand l’élément a été converti à son arrivée (un GeoTIFF transformé en COG, un MBTiles transformé en PMTiles), ce qui ne peut pas encore être remplacé sur place. Un élément supprimé sur ALIGN est publié comme un nouvel élément, et la ligne d’Activity le signale.

La vue Activity après une publication

Votre coucheCe qui est envoyéCe qu’ALIGN stocke
Toute couche vectorielle que QGIS sait lireFlatGeobuf en WGS 84 (reprojeté à l’export ; la couche elle-même n’est pas modifiée)une couche, servie telle quelle
Une couche vectorielle lue depuis un fichier FlatGeobuf ou GeoParquet déjà en WGS 84ce fichier, octet pour octetle même fichier
Une couche de tuiles vectorielles lue depuis une archive PMTiles ou MBTiles sur disquecette archive, octet pour octetle PMTiles (un MBTiles est converti à son arrivée)
Un raster stocké en GeoTIFFce fichier, octet pour octetun Cloud-Optimized GeoTIFF, préparé à son arrivée
Tout autre raster que GDAL sait lireun GeoTIFF compressé écrit pour l’occasionun Cloud-Optimized GeoTIFF
Un service : XYZ, WMS, WMTS, WFS, OGC API Features, ArcGIS Feature ou Map Service, tuiles vectorielles, un COG ou un PMTiles distant, un nuage de points ou des 3D Tiles par URLson adresse et le nom de la couche, aucune donnéeune référence dynamique, lue à l’ouverture de la carte, une par service

Trois choses accompagnent une couche vectorielle :

  • Le style. Les rendus symbole unique, catégorisé et gradué deviennent le style propre du Map Builder ; un rendu par ensemble de règles composé de règles d’égalité devient des catégories. Ce que le web ne sait pas dessiner (hachures, marqueurs SVG, tailles en unités de carte, propriétés pilotées par des expressions, étiquettes) est simplifié, et le récapitulatif comme la vue Messages le signalent avant que vous ne publiiez. Une différence à connaître : QGIS masque une entité qui n’entre dans aucune catégorie, la carte web la dessine. Sans ligne « toutes les autres valeurs », ces entités arrivent dans un gris neutre et translucide qui n’appartient à aucune classe, et le récapitulatif le dit ; ajoutez la ligne dans QGIS pour choisir leur apparence. La symbologie raster n’est pas transmise.
  • Les métadonnées. Ce que vous avez saisi dans Propriétés de la couche → Métadonnées (résumé, thème et mots-clés INSPIRE, licence, contraintes d’accès, contact, historique) remplit le bloc de métadonnées de l’élément. Un champ que votre organisation impose pour chaque jeu de données garde la valeur de l’organisation, et la publication indique lequel.
  • La provenance. L’élément enregistre qu’il vient de QGIS, quand, et depuis quel système de coordonnées.

Un raster reprojeté est conservé deux fois : votre original et la copie prête à l’affichage, toutes deux décomptées de votre stockage. Un service est conservé comme référence, comme le fait ArcGIS Online : ALIGN stocke l’adresse, lit le service quand une carte s’ouvre, et réutilise un seul élément pour un même service, quel que soit le nombre de fois où il est publié. Un service dont l’adresse porte une clé ou une signature est refusé : une référence ne stocke jamais d’identifiants de connexion.

La vue Messages liste chaque couche que le plugin n’enverra pas, avec la raison :

  • une table sans géométrie, une couche vide, des géométries courbes (segmentez-les d’abord) ;
  • un nuage de points, un maillage ou une scène 3D locaux (ALIGN n’accepte les nuages de points et les 3D Tiles que par URL) ;
  • une connexion WCS ou ArcGIS Image Service (rien à publier, et le Map Builder ne les lit pas en direct) ;
  • une couche WMTS hors des tile matrix sets en Web Mercator ;
  • un modèle d’URL XYZ avec des variables de sous-domaine ou de ligne inversée.

Les tuiles raster d’une archive MBTiles sont stockées, mais pas encore affichées par le Map Builder. Les étiquettes ne sont pas encore transmises : ajoutez-les dans le Map Builder.

La vue Messages : ce qui ne peut pas être publié, et pourquoi

Le plugin rapporte ce que le serveur a répondu, dans votre langue :

Ce que vous lisezPourquoiQue faire
Votre session ALIGN a expiréle jeton a été révoqué ou a expiréreconnectez-vous
Cette organisation n’a pas activé le plugin QGIS pour ses membresle réglage Desktop plugins est désactivéun propriétaire ou un administrateur l’active dans Settings → Integrations
Votre rôle dans cette organisation ne permet pas de publiervous y êtes lecteurdemandez un rôle d’éditeur, ou publiez dans une autre organisation
Convertir ce fichier demande N crédits ; cette organisation en a Mun raster ou une archive de tuiles doit être converti à son arrivée, et l’estimation dépasse le solde ; rien n’a été transféréajoutez des crédits dans Plans & Capacity, puis publiez à nouveau
Il ne reste pas assez d’espace dans le Datastore de cette organisationle fichier dépasserait le stockage de l’offre ; c’est vérifié avant le premier octetlibérez de l’espace, ou passez à une offre supérieure
ALIGN n’accepte pas ce type de fichierun format que le Datastore ne peut pas servir tel quellaissez le plugin convertir (il le fait pour toute couche QGIS), ou importez depuis l’application web

La vérification du stockage et l’estimation des crédits ont lieu avant le début du transfert : une publication qui ne tiendrait pas est refusée en quelques secondes, pas après une heure d’import.

Le plugin ajoute un fournisseur ALIGN à la Boîte à outils de traitements, avec un seul algorithme, Publier une couche sur ALIGN (align:publishlayer). Il publie exactement comme le panneau, avec le style et les métadonnées de la couche, et s’utilise depuis le Modeleur graphique, l’exécution par lots, la console Python, et tout pont MCP qui permet à un agent d’exécuter des algorithmes de traitement. Connectez-vous d’abord depuis le panneau : l’algorithme n’ouvre jamais de navigateur.

import processing
result = processing.run("align:publishlayer", {
"INPUT": "Countries", # a layer, its id or a file path
"ORGANIZATION": "Town GIS", # the organization's name or id
"TITLE": "", # empty: the layer's metadata title, else its name
"DESCRIPTION": "Boundaries, 2026 edition",
"VISIBILITY": 1, # 0 private, 1 organization
"SELECTED_ONLY": False,
"REPLACE": True, # replace the item this layer was published as, when it lives in this organization
})
print(result["ASSET_ID"], result["ALIGN_URL"])

REPLACE est activé par défaut : une couche qui se souvient de son élément est remplacée sur place, comme depuis le panneau ; réglez-le sur False pour obtenir un nouvel élément à chaque exécution.

Chaque refus du panneau est un refus de l’algorithme, dans les mêmes termes : pas connecté, organisation introuvable (le message liste les vôtres), une couche qui ne peut pas être publiée, l’interrupteur de l’organisation, le rôle, le stockage, les crédits. Une couche de service est refusée avec un renvoi vers le panneau, qui l’enregistre comme référence.

Les bugs et les demandes vont dans le suivi des tickets du plugin sur GitHub. Avant d’écrire, ouvrez la vue Messages du panneau ALIGN et cliquez sur Copy diagnostic (aussi dans le menu du bouton de barre d’outils), puis collez-le dans le ticket. Il contient ce qu’il faut pour reproduire : les versions du plugin, de QGIS, de Qt et de Python, le système, les adresses ALIGN auxquelles le plugin parle, si vous êtes connecté, les noms de vos organisations, les dernières publications avec les codes de refus d’ALIGN, et les couches que le panneau refuse avec leur raison. Il ne contient jamais de jeton, d’adresse e-mail ni d’identifiant de compte, et rien ne quitte votre machine tant que vous ne le collez pas. Le plugin n’envoie aucune télémétrie.