Présentation des services basés sur OGR

Introduction

Dans cette section, nous allons utiliser les ZOO-Services basiques: Buffer, Intersection et DifferencePy qui utilisent OGR et des modules psycopg Python. Le but visé de cette section est de présenter et d’interagir avec les services disponibles avant de les chaîner dans la section suivante.

Fournisseurs de Services et fichiers de configuration

D’abord, vous pouvez vérifier si les ZOO-Services sont disponibles à partir de votre configuration actuelle. Vous pouvez jeter un oeil à Buffer.zcfg, Intersection.zcfg et DifferencePy.zcfg pour obtenir des détails sur les paramètres. Comme vous pouvez le voir depuis les fichiers ZCFG, vous allez utiliser les ZOO-services fournis par le fournisseur de services Python service. Donc, si vous voulez modifier le code Python, vous devrez modifier le fichier correspondant (c’est à dire service.py). Vous êtes invités à utiliser des requêtes similaires à celle utilisée dans les sections précédentes pour en apprendre davantage sur chacun des services individuellement

Interfaces clientes

Pour interragir avec un serveur WPS, il est possible d’utiliser divers types de clients différents, par exemple, des interfaces web, comme celle présentées ci-après, ou encore des clients bureautiques de type QGIS.

Interface web

Tout d’abord, vous devez utiliser le lien suivant pour accéder l’interface cliente de démonstration avec outils spatiaux basiques :

Vous remarquerez que ces interfaces web utilisent le ZOO-Client qui facilite l’interraction avec des serveurs WPS. En effet, une instance de la classe ZooProcess est utilisée afin d’invoquer des requêtes WPS Execute.

Le service Buffer (de tampon)

Cliquez d’abord sur une rue, puis une fois que la rue est affichée en bleu, cliquez sur le bouton Buffer au dessus, vous devriez obtenir un résultat similaire à celui affiché dans ce qui suit.

_images/Buffer_Level_15_2014.png

Le service Intersection

En utilisant la même interface cliente que précédemment, une fois que vous avez un tampon, vous pouvez sélectionner une rue intersectant la géométrie tampon pour calculer l’intersection en cliquant sur le bouton Intersection.

_images/Intersection_Level_152_2014.png

Le service DifferencePy

En utilisant les mêmes instructions que pour Intersection, vous pouvez obtenir le résultat suivant.

_images/Difference_Level_152_2014.png

Interface QGIS

Pour accéder aux services WPS depuis l’interface bureautique QGIS, il est nécessaire d’installer le plugin QgsWPSClient. Vous trouverez ci-dessous l’ensemble des informations nécessaires à son installation et son utilisation afin d’obtenir un résultat équivalent à celui obtenu depuis l’interface web présentée précédemment.

Installer QgsWPSClient

Pour pouvoir installer QgsWPSClient, vous devez tout d’abord ajouter le dépôt d’extention http://geolabs.fr/plugins.xml à votre liste de dépôts disponible. Pour se faire, cliquez sur “Plugins” puis “Manage and install plugins...”, le fenêtre suivante devrait alors apparaitre.

_images/QgsWPSClientSetup1.png

Cliquez alors sur le bouton “Add...” afin de voir la fenêtre présentée ci-dessous aparaitre. Saisissez les informations ci-dessous :

_images/QgsWPSClientSetup2.png

Cliquez maintenant sur “All” puis cherchez le plugin QgsWPSClient dans la liste comme présenté dans la capture d’écran ci-dessous.

_images/QgsWPSClientSetup3.png

Cliquez alors sur le bouton “Install plugin”, une fois l’installation terminée vous pouvez alors cliquer sur le bouton “Close” afin de retourner vers l’interface principale de QGIS.

Utiliser QgsWPSClient

Afin d’utiliser les même données que celles de l’application web vue précédemment, veuillez Ajouter une source de données WFS comme suit :

Ajouter ensuite les couches points et new_roads_001 à votre carte actuelle. Sélectionnez la couche new_roads_001 puis activez l’outils de selection d’objets géographiques puis selectionnez une route.

Une fois la route sélectionnée, cliquez sur le bouton “connect” de l’interface de l’interface de QgsWPSClient. Dans le cas où cette interface ne serait pas disponible, accéder au menu “Web” puis dans le sous-menu “QgsWPSCLient” cliquez sur “QgsWPSCLient” poru le faire apparaitre. Cliquez alors sur le bouton “New” dans la fenêtre afin de vois apparaitre la fenêtre de paramétrage d’un serveur WPS, comme présenté ci-dessous.

_images/QgsWPSClientSetupServer.png

Cliquez, sur le bouton “Connect” pour lister les services WPS disponibles, puis sélectionnez le service Buffer dans la liste et cliquez sur le bouton “OK” afin de voir apparaitre la fenêtre d’éxécution du service. Cette dernière permet de définir les différents paramètres d’entrée et sortie à envoyer au seveur.

_images/QgsWPSClientBSettings.png

Cochez ici bien la case “(Selected)” afin de ne caculer le Buffer que pour la route selectionnée précédemment. Cliquez alors sur le boton “Run”. À la fin de l’exécution du service, le résultat devrait s’ajouter à la carte actuelle.

Séletionnez alors le service Intersection afin d’exécuter un intersection entre le Buffer produit précédemment et l’ensemble des points disponibles. Vous trouverez ci-desous une capture d’écran du paramétrage demandé.

_images/QgsWPSClientISettings.png

Une fois l’exécution de ce service réalisé, vous devriez alors obtenir un affichage similaire à la capture d’écran ci-dessous qui présente le resultat de l’exécution du service Buffer en bleu et les points contenus dans cette objet sous forme d’étoiles rouges.

_images/QgsWPSClientResult.png

Conclusion

Maintenant, vous connaissez les trois principaux services, et vous avez des interfaces simples pour interagir avec vos données en WFS diffusées par MapServer et votre serveurs WPS ZOO-project, vous êtes fin prêts à les chaîner via l’API ZOO JavaScript pour construire des services plus complexes et plus puissants.