Introduction

QGis est un logiciel de SIG bureautique qui permet bien des choses. Dans la liste de ses nombreuses fonctionnalités, apparaissent quelques éléments qui permettent de construire une véritable application de saisie métier en peu d'effort.

Il est notamment possible d'élaborer des formulaires de saisie qui permettent de bien orienter la saisie et de minimiser le risque d'erreurs avec un simple paramétrage, c'est à dire sans devoir coder !

Ce document tente de présenter une méthode de construction de ces applications de saisie. Il s'organise autour d'un référentiel métier complet: celui des servitudes d'utilité publique (SUP).

Dans un premier temps, nous tenterons de voir quelles sont les données mises en oeuvre puis nous verrons comment fabriquer nos formulaires. Enfin, nous étudierons des moyens d'adapter l'interface de Qgis pour faciliter la prise en main par les utilisateurs avant de conclure avec des outils d'aide à la saisie.

Note: Ce travail d'exploration des fonctionnalités de QGis requiert la version 1.9.90 (2.0 beta) car nombre des outils illustrés dans ce document ne sont pas implémentés dans la version 1.7.4 (dernière stable à la rédaction de ce document).

Stockage des données

Choix d'un modèle

Avant de commencer à parler de données, il convient de savoir de quoi on parle. Le plus simple est de trouver une analyse toute faîte ! Pour notre thème de travail (les SUP), vous trouverez cette analyse directement sur le site du CNIG. Vous pouvez télécharger les documents et les lire pour vous donner une idée des termes utilisés.

Les documents du CNIG vont plus loin car ils proposent notamment une structuration type de l'information géographique. Ainsi, plutôt que de réinventer la poudre, nous pouvons baser notre travail à suivre sur cette structure de données.

Faisons rapidement un inventaire des couches et des tables à créer:

  • Il nous faut une table qui stocke les actes juridiques qui instaurent des SUP: un acte peut instaurer plusieurs SUP.
  • Ensuite, une servitude dispose d'un organisme gestionnaire. Il faut donc pouvoir faire le lien avec ce gestionnaire et les SUP dont il a la charge.
  • Au niveau géographique, une servitude est définie par un générateur: un objet géographique qui est à la source d'une servitude. Il faut donc une couche qui gère les générateurs
  • Ensuite, une servitude dispose d'une assiette (une emprise) qui , à partir du générateur, étant une zone.
  • Enfin, il faut lister toutes les tables dites de paramétrage (relation 1,n) qui permettent d'indiquer facilement des valeurs pré-existantes pour certains champs.

Prenons un exemple:

  • Pour les SUP de type A4 qui concerne les périmètres des monuments historiques, le générateur est le polygone qui représente le bâtiment qui est un monument historique.
  • L'assiette de la SUP est un tampon de 500m autour du générateur (bâtiment). Ce tampon est donc lié à la forme du bâtiment (pour faire simple).

On voit donc qu'on dispose d'un modèle de données plutôt relationnel et c'est très avantageux:

  • les tables de paramétrage nous permettent de gérer de manière dynamique les valeurs prédéfinies. Les utilisateurs n'ont donc pas à craindre des mauvaises saisies à ce niveau et on garde un bon niveau d'évolutivité.
  • la gestion des liens entre gestionnaires, actes et servitudes amène à minimiser la saisie de ces objets.
  • pour la partie géographique, on voit que, dans la majorité des cas, la saisie va se limiter au générateur et l'assiette sera générée automatiquement.

Des vraies tables

Pour les besoins de l'exemple, nous allons travailler uniquement sur les SUP de type A4 (nos monuments historiques). Nous allons utiliser un "backend" sous Spatialite pour des raisons de facilité d'installation et d'administration. Sachez que ces exemples s'adaptent très facilement sous PostGIS qui amènera l'effet saisie concurrentielle.

Vous n'aurez besoin que d'installer QGis et son extension QSpatialite pour travailler.

Voici les tables que nous allons créer:

  • TODO
-- Table des servitudes
TODO

-- Tables de paramétrage

Création des tables

Commencez par créer une nouvelle base de données Spatialite à l'aide de l'extension QSpatialite.

Elaboration des formulaires de saisie

L'élaboration des formulaires de saisie sous QGis peut se faire selon deux modes:

  • En utilisant les propriétés des champs.
  • En utilisant un fichier de définition de formulaires.

La première méthode est la plus simple: il n'y a pas de programmation, juste de la configuration. De plus, c'est le mode qui offre le plus de souplesse et le plus de contrôles pré-définis. Ainsi, vous pourrez ajouter un contrôle de calendrier qui vous permettra de définir des dates de manière plus souple et plus attractive pour vos utilisateurs. En revanche, vous n'aurez que peu de degrés de liberté sur l'apparence du formulaire. Mettez-donc de côté les belles icônes et les belles images avec les jolies fontes auxquelles vous aurez pensé !

La seconde méthode est potentiellement plus riche car vous pouvez mettre en forme les formulaires comme bon vous semble. Néanmoins, il subsiste un vrai problème avec les contrôles qui sont différents des listes déroulantes et des simples entrées de formulaire. Si vous voulez ajouter un calendrier ou même une simple case à cocher, vous ne pourrez pas utiliser cette méthode.

Voyons maintenant comment faire ?

Méthode 1: propriétés des champs

C'est la méthode la plus simple: elle consiste à utiliser l'onglet Champs de qgis pour indiquer le type de contrôle de chaque champ en mode saisie. Cette méthode est très accessible car il n'y a pas besoin de code. De plus, elle permet un minimum de souplesse pour les contrôles, comme nous allons le voir tout de suite.

Méthode 2: fichier de définition de formulaire

TODO

Simplification de l'interface

Maintenant que nous disposons de tous les formulaires utiles pour notre application, il reste à supprimer tout ce qui est inutile. QGis est un SIG généraliste et il vient avec de très nombreuses fonctions qui ne sont certainement pas toutes utiles pour nos utilisateurs. Il n'est par exemple, nul besoin, de fonctionnalités avancées sur les opérations raster pour des utilisateurs qui font uniquement de la saisie de points et d'attributs.

QGis permet de simplifier l'interface grâce au menu Préférences-->Personnalisation.

Mise en place de triggers

Maintenant que nous avons une véritable application de saisie, nous pouvons aller plus loin. En effet, l'intérêt d'une application est de minimiser le temps nécéssaire à la saisie pertinente des données. Ainsi, dans certains cas et spécifiquement pour notre thème de travail, certaines opérations peuvent être automatisées.

Prenons par exemple, le cas des assiettes de SUP des monuments historiques. Celles-ci sont générées à partir d'une emprise de bâtiment classé et elles délimitent un périmètre de 500m autour de ce dernier. Cette distance est toujours la même. Dans ces conditions, nous pouvons imaginer de mettre en place un système qui générerait automatiquement un tampon de 500m autour de tout nouvel objet de la couche des monuments historiques (et ce, dans la couche des assiettes de SUP des monuments historiques).

Conclusion

TODO