Présentation des services basés sur OGR¶
Table des matières
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.
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.
Le service DifferencePy¶
En utilisant les mêmes instructions que pour Intersection, vous pouvez obtenir le résultat suivant.
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.
Cliquez alors sur le bouton “Add...” afin de voir la fenêtre présentée ci-dessous aparaitre. Saisissez les informations ci-dessous :
- GeoLabs QGIS Repository
- http://geolabs.fr/plugins.xml
Cliquez maintenant sur “All” puis cherchez le plugin QgsWPSClient dans la liste comme présenté dans la capture d’écran ci-dessous.
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 :
- Name : MapServer Local
- URL : http://localhost/cgi-bin/mapserv?map=/var/data/maps/project_WS2016.map
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.
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.
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é.
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.
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.