Projet de session Cours SCG Réalisation d’application en SIG Présenté par Nidhal Ben Othmen
Plan de la présentation Mise en contexte Définition du projet Objectif du projet Analyse Tâches Choix technologiques Conception Principe d’application Difficultés rencontrées Démonstration Perspectives d’évolution Conclusion
Mise en contexte Je suis étudiant en Maitrise avec stage et essai Pas de sujet de recherche Pas de crédits de recherche
Définition du projet Affichage des données géographiques vecteurs à partir d’une requête WFS via une URL Changement de couleur des objets Programmations des fonctions Zoom In Zoom Out Full Extent Pan Identify
Objectif du projet Maîtriser les technologies de traitement de données géospatiales distribuées Apprendre les principes de base relatifs à la programmation distribuée
Analyse WFS est service géographique en ligne spécifié par l’OGC s’appuie sur l’ensemble des technologies XML Permet : la mise à disposition d’entrepôts de données géographiques vecteurs la gestion en ligne d’entrepôts de données géographiques vecteurs Les données sont délivrées en GML
Analyse L’accès aux services géographiques en ligne se fait : Soit en adressant des requêtes URL-encodées : Méthode GET de HTTP Soit en postant (méthode POST de HTTP) à destination du serveur des requêtes exprimées en XML Deux grands types de requêtes : GetCapabilities & Describe : Quelles sont les données disponibles GetFeature + Transactions : Donne moi/met à jour telles données!
Tâches Choix du serveur WFS Choix de l’API à utiliser pour lire et manipuler le GML Formulation des requêtes WFS Développement
Choix technologiques GeoServerDeeGree Spécifications OGC implémentéesWMS et WFS Rôles possible dans un système distribué WMS et WFS client/serveur Plate-forme sur laquelle il tourneWindows/UNIX et autres.. Connexion aux sources de donnéesPlusieurs sources de données (PostGIS) Plusieurs sources de données Disponibilité de documentation et instruction Documentation et instructions d’installation Documentation détaillé pour WMS et WFS
Choix technologiques Pour la lecture et l’analyse de la réponse de la requête WFS Geotools (package org.geotools.gml) Deegree (package org.deegree.gml) GML4J (lire et manipuler du GML)
Formulation de requête WFS (Méthode Get de HTTP) 6 partie dans l’URL: L’adresse du serveur: Le type de la requête : request=getFeature Le type de service : service=wfs La version : version=1.0.0 Le nom des données qu’on va interroger: typename=states Le filtre utilisé pour sélectionner exactement ce qu’on veut Filter= STATE_FIPS 35
Principe d’application Saisie de l’URL Affichage de la carte Affichage d’un JCheckBox Affichage d’un JButton Clique sur un bouton Récupération de la réponse à la requête (GML) Parsage le fichier GML Dessin des objets
Conception de l’interface Menu et Toolbar Affichage de la carte Tableau d’identification Carte de localisation Thème
Les difficultés rencontrées Réalisation de l’interface graphique: BorderLayout JSplitPane JInternalFrame Solution: 4 JPanels (4 classes) JLabel, JTextField et 9 JButton FlowLayout
Les difficultés rencontrées Programmation du Zoom In : Définir un rectangle Solution: Zoom sur un clique Seuil de zoom
Les difficultés rencontrées Programmation du Pan : mousePressed() et mouseDragged() Solution: 4 boutons de déplacement (droite, gauche, bas et haut) Choisir un constante de déplacement
Interface JLabel, JTextField, des JButton Affichage de la carte Tableau d’identification Carte de localisation Thème
Les difficultés rencontrées La programmation des fonctions de zoom et de pan n’était pas facile L’affichage s’effectue au fur à mesure Solution : Appliquer l’opération avant de dessiner l’objet On dessine l’objet Applique l’opération inverse gr.translate (TransX,TransY); gr.drawpolygon(pl); gr.translate(-TransX,-TransY);
Démonstration
Démonstration (Démarrage)
Démonstration (Affichage des données)
Démonstration (modification de la couleur)
Démonstration
Démonstration(pan)
Démonstration (Zoom In)
Limites du projet FaitReste à faire Affichage de la réponse à une requête WFS Affichage d’un JCheckBox Changement de couleur Zoom In,Out et Full Extent Affichage d’une carte de localisation Pan (déplacement dans les 4 directions) Identify
Limites du projet On peut afficher uniquement des polygones L’affichage des données prend du temps Lecture du GML à chaque opération
Perspectives d’évolution A moyen terme: Minimiser le temps d’affichage des objets par le stockage des données dans un vecteur Essayer de définir des rectangles au moment du zoom in Afficher une carte de localisation A long terme: Programmer la fonction identification Essayer de réaliser un prototype qui permet d’afficher toutes les primitives géométriques (points, lignes et polygones)
Conclusion Conception et développement d’une application WFS Implémentation de cette application: Serveur WFS : GeoServer API GML4J Faute de temps..
Merci