_amine_mellah_ 2008/12/11 10:53

LES FONCTIONS D'INTERROGATION DANS QGIS

Une des fonctionnalités majeures des SIG, est d’interroger les bases de données au moyen de requêtes.

L’objet de cette partie est de comparer les capacités d’interrogation du logiciel libre QGIS avec le logiciel propriétaire Mapinfo.

Les requêtes de consultation

Une requête de consultation est une sélection de sous-ensembles d’objets :

On compare ici, Qgis et mapinfo, sur le type de langage de requête utilisé, la construction et la sauvegarde de la requête, la forme des résultats et les opérateurs spatiaux disponibles.

Type de langage

Qgis et Mapinfo utilisent tous deux, le langage SQL (Structured Query Language)

Construction de la requête

Deux commandes sont communes aux deux logiciels :

Sélection > Sélection… (critères attributaires et spatiaux) Sélection > Sélection SQL… (critères attributaires et spatiaux + fonctions d’agrégation)

Cependant, l’interface et les fonctionnalités sont différentes.

Sauvegarde de la requête

Qgis : les requêtes sont enregistrées dans un document Qgis de type .QGS Mapinfo : les requêtes sont enregistrées dans un document .wor sous la forme d’un fichier .qry

Forme des résultats

Qgis :

Mapinfo :

Opérateurs spatiaux

Qgis ne propose pas d'opérateurs spatiaux

MapInfo propose divers opérateurs spatiaux qui permettent de sélectionner des objets appartenant à deux tables différentes, à partir de leurs relations spatiales.

Dans mapinfo, ces opérateurs sont :

Opérateurs arithmétiques et logiques

Qgis : ( = ; ⇐ ; >= , != ; ^^; < ; > ; % ; LIKE ; AND ; IN ; NOT IN ; OR ; NOT) Mapinfo: ( + ; - ; * ; / ; = ; ⇐ ; >= , <> ; ^; < ; > ; % ; LIKE ; AND; OR ; NOT)

A noter que Qgis ne propose pas les opérateurs (+, -, *, /), c’est à l’utilisateur de les taper sur son clavier.

Requêtes de mise à jour

Qgis : pas d’outils de mise à jour

Mapinfo : elles peuvent se faire par deux moyens :

Opérations d’agrégation

Disponible seulement sur mapinfo. Voici, les différentes fonctions d’agrégation proposées par mapinfo :

Requêtes sur des tables distantes

Qgis : possible à partir de la géodatabase GRASS. Mais cela ne peut se faire que sur Linux. Mapinfo : il est nécessaire d’utiliser la routine buildsql.mbx (NB : cette routine n’est active que lorsqu’une table DBMS existe) Celle-ci ouvre alors la boite de dialogue MapInfo DBMS SQL Runner, qui donne accès à la fonction sélection SQL puis à la boite de dialogue sélection SQL datalink.

Interface de la fenêtre d’interrogation

QGIS :

Sur QGIS, l’interrogation des bases de données se fait à l’intérieur des tables attributaires. Ces dernières sont accessibles par un simple clic droit sur la couche. Comme on le voit sur la capture ci-dessus, il faut désigner l’attribut sur lequel porte la requête ainsi que le champ correspondant. La fonction rechercher exécute la requête. Le résultat est sélectionné, il peut être placé en première ligne (« sélectionnez et glissez-déplacez au dessus ») ou affiché sur la carte. Dans ce dernier cas, c’est le seul élément qui apparait sur la carte.

Mapinfo :

Dans Mapinfo, l’accession à la table attributaire se fait grâce à la fenêtre donnée. Contrairement à Qgis, les fonctions de requêtes font l’objet d’un module spécifique dénommé selection. La requête par sélection dans mapinfo offre plus de possibilités puisque on peut utiliser des opérateurs dans expression. Ce qui n’est pas possible dans Qgis en dehors des sélections SQL. Ici nous avons utilisé l’opérateur égal.

L’autre différence concerne l’affichage du résultat. Sur mapinfo, le résultat de la requête est mis en évidence sur la carte et s’inscrit dans une nouvelle table.

Conclusion

Il est important de noter que la commande de requête SQL ne fait pas l'objet d'un module individuel dans QGIS. En effet, on ne peut faire des requêtes qu'à partir d'un clic droit sur une couche. Ceci restreint fortement les capacités d'une requête puisque on ne peut interroger que la salle table selectionnée et non plusieurs comme c'est le cas dans mapinfo. En définitif, les fonctions d'interrogation dans QGIS sont très rudimentaires, et sont loin des possibilités offertes par le logiciel mapinfo.