Académique Documents
Professionnel Documents
Culture Documents
Document de révision
1
Plan
1ère Partie : SIG & Web Tour d’Horizon
Principes et Fonctionnalités d’une application WebMapping
Principes d’une application WebMapping
Fonctionnalités d’une application WebMapping
Architecture d'une application web(statique & dynamique)
Architecture d'une application Webmapping
Serveurs cartographiques
Clients cartographique
Service web cartographiques
Définition des services web
Architecture 3-tiers
Service web cartographique
Principaux standards OGC
Analyse des plateformes cartographiques existantes
Composants
Offres existantes
Exemples d'application
Analyse
Conclusion
2ème Partie : Démonstration
Introduction
Objectif
Zone d’Etude
Structure de l’interface
Conclusion
2
Principes et Fonctionnalités d’une
application WebMapping
3
Qu’est ce que le Webmapping?
Ces applications répondant à un besoin bien précis, elles sont destinées à diffuser
dans des navigateurs des données cartographiques interactives.
4
Les technologies webMapping
Le Webmapping regroupe l'ensemble des
technologies permettant d'afficher une carte
par internet.
5
Les Fonctionnalités
6
L'architecture d'une application
de web
7
Introduction: le web et internet
Internet : un réseau mondial (supranational) de machines interconnectées
un réseau de réseaux
des protocoles de communication : TCP-IP
nombreuses applications : courrier électronique, transfert de fichiers (ftp), messagerie instantanée, peer-to-peer,
World Wide Web
8
Introduction: le web et internet (suite)
W3C « World Wide Web Consortium »
organisme de normalisation chargé de promouvoir la compatibilité des
technologies du web
« un seul web partout et pour tous »
9
Introduction
Le web ce sont des machines communiquant
en réseau à l'aide d'un langage commun.
10
Le Protocole de Communication
Le dialogue entre le client et le serveur repose sur toute une série de protocoles imbriqués les uns dans les
autres.
TCP/IP(Transmission Control Protocol/Internet Protocol)
Protocole utilisé sur le réseau Internet pour transmettre des données entre deux machines. Permet de
transformer les signaux physiques en information numérique. Dans la programmation d’un site web, on
utilise un protocole logique qui s’appuie sur TCP/IP,
HTTP HyperText Transfer Protocol
Pour atteindre une ressource, le client doit utiliser le protocole de communication HTTP: protocole de
communication entre client et serveur permettant d'accéder à des ressources distantes
URL Uniform Ressource Locator
Sur le web, une ressource est identifiée par son url (chaîne de caractères).
Lorsque le client souhaite atteindre une ressource distante, il émet donc une requête HTTP mentionnant l'url
de la ressource ;
Chaîne de caractères normalisée destinée à être utilisée par tout client web pour atteindre une ressource.
11
Accès à une page web statique simple
Affichage page1.html
12
Architecture Client/serveur
Internet Figure 4:Schéma d’Architecture Client/serveur
Requête HTTP
Requête HTTP
Requête HTTP
Serveur
Client
Le rôle du serveur est:
Aller chercher, lorsqu’on lui en fait la requête, le fichier réclamé, puis de le renvoyer au demandeur.
Limiter la zone à laquelle les clients peuvent avoir accès.
13
Accès à une page Dynamique
1- Appel le fichier «calcul.php » par 2-Le serveur va cherché le fichier
son URL dans le serveur apache
Requête HTTP
www.site.fr/calcul.php?x=2&y=4
Serveur Web
Affichage
Réponse HTTP
3- Affichage de document HTML
dynamique
« calcul.php »
<html>
<p> Le résultat vaut:8</p> Serveur PHP
</html>
Serveur Internet
Navigateur et
serveur PHP
14
Figure 5: L’itinéraire d’une requête pour accéder à une page web dynamique
Accès à une page n-tiers
www.site.fr/commandes.php?nom=Durand&prenom=Jean
Serveur web
Nom=Durand
4- Affichage de document HTML
Serveur PHP Prénom=Jean
dynamique
<html>
<p>commandes de Mr Durand Jean
</p>
<table> Select * from commandes
<tr> wehre
<td>01/06/2007</td> nom=Durand
-- And
15
Côté serveur
Accés aux bases de données
Toutes les données importantes d’un site web doivent être stockées dans une base de données.
Parmi les nombreux SGBD du marché on trouve:
Oracle est le SGBD historique. C’est la solution la plus robuste, la solution commerciale la
plus utilisée. C’est aussi la plus chère.
MySQL est un SGBD relativement simple, gratuit et très populaire. Il est recommandé pour
les prototypes et pour les applications simples.
PostGreSQL est un peu plus compliqué que MySQL. Il est gratuit lui aussi. Il comporte un
module spatial (la cartouche spatiale) qui permet de manipuler de l’information géographique.
Le module spatial de PostGreSQL se nomme PostGIS.
Dans ces SGBD, les données sont rangées dans des tables (ce sont en réalité comme des
tableaux de données). Dans ces trois SGBD, on manipule les données et les tables au moyen
d’un langage appelé SQL.
16
L'architecture d'une application
de Webmapping
17
Application Webmapping
Une application Webmapping se base sur des outils logiciels permettaient d’ajouter à un serveur
web classique des fonctionnalités SIG , pour le rendre potentiellement capable de :
Gérer des données géoréférencé
Exécuter des requêtes numériques, textuelles et spatiales
Générer des documents cartographiques(cartes ,légende ,échelle )
Retourner ces documents à l’ordinateur clients qui les demandés.
Serveur
Cartographique
L’utilisateur, à partir de son ordinateur effectue des requêtes pour demander l’affichage d’une carte
spécifique; le serveur cartographique interprète cette requête et renvoie la carte sous la forme d’une image
matricielle (png, jpg,…) ou vectorielle (svg, swf,…).
Le serveur cartographique peut chercher l'information nécessaire à la réalisation de la carte dans ses
propres ressources, mais aussi sur des serveurs de données distants.
18
Accès à une page web WebMapping
www.site.fr/webmap.php?x_clic=300&y_clic=600&layer=region
Serveur web
Navigateur
19
SGBD Côté serveur
Serveur cartographique
Qu'est-ce qu'un serveur cartographique ?
• liées à la taille des données : limitation nombre d'objets chargeables en même temps
• de connexion : les donnees sont distantes, il faut donc une connexion internet pour pouvo
les charger
Types de clients - suite
2
6 Page dynamique
3
Navigateur Web service
5
4
7 affichage
Les services web géographiques sont des services web permettant d’effectuer des
traitements géomatiques ou géographiques (géocodage…), de renvoyer des cartes ou
de donner accès à des données géographiques.
Le terme services web évoque surtout les standards de l’Open GeoSpatial
Consortium (OGC)
Ces standards ont pour objectif de rendre les SIG interopérables entre eux plutôt
qu’avec les autres composants des systèmes d’information. L’idée est donc qu’une
donnée ou une fonction stockée dans un environnement logiciel SIG puisse être
accessible directement à partir d’un autre environnement sans téléchargement ni
conversion préalable.
L’intérêt des standards de l’OGC et des services web géographiques est de permettre
à un utilisateur de SIG bureautique de combiner sur son poste des données venant de
plusieurs sources distantes ou locales, et de les traiter comme si elles étaient
stockées sur son poste.
Principaux standards OGC
Ils permettent la mise à disposition en ligne d’images raster, de cartes, d’entrepôts de
données , de catalogues de données et de services géographiques(métadonnées),…
Réponse :
La requête GetCapabilities permet de retourner un fichier XML structuré comme suit:
<service> <Capability> spécifie les capacités du serveur
Description générale de cartographique. On y trouve le type de requête
l'organisme/personne qui fournit le acceptée (GetMap, GetFeatureInfo), le format
service WMS de données en fonction du type de requête, les
</service> couches disponibles
</ Capability >
L’opération GetMap
Définition :
Quand un client WMS lance une requête GetMap vers un serveur WMS, le serveur
WMS retourne a l’utilisateur une carte (matricielle ou vectorielle) basée sur certains
paramètres.
Donnes moi une carte d’une taille de 560 x 350 au format PNG sur les ouragans
suivant la couche US National Oceanographic and Atmospheric Administration
(AVHRR-09-27) dans l’emprise -97.105,24.913,-78.794,36.358, exprimée dans le
système de référence : CRS:84
http://a-map co.com/mapserver.cgi?
VERSION=1.3.0&
REQUEST=GetMap&
CRS=CRS:EPSG:4326&
BBOX=-97.105,24.913,-78.794,36.358&
WIDTH=560&
HEIGHT=350&
LAYERS=AVHRR-09-27&
STYLES=&
FORMAT=image/png&
L’opération GetMap/Exemple
Donnes moi une carte d’une taille de 560 x 350 au format PNG composée de la superposition
dans l’ordre des 3 couches suivantes : zone de bâtiments (BUILDTUPA_1M), côtes
(COASTL_1M), frontières politiques (POLBNDL_1M), dans l’emprise -97.105,24.913,
78.794,36.358, exprimée dans le système de référence : CRS:84 et en appliquant
respectivement aux 3 couches, les styles 0XFF8080, 0X101040 (couleurs ici) et BLACK. De
plus, la transparence doit être appliquée et la couleur de fond de la carte sera blanche.
http://b-maps.com/map.cgi?
VERSION=1.3.0&
REQUEST=GetMap&
CRS=CRS:84&
BBOX=-97.105,24.913,-78.794,36.358&
WIDTH=560&
HEIGHT=350&
LAYERS=BUILTUPA_1M,COASTL_1M,POLBNDL_1M&
STYLES=0XFF8080,0X101040,BLACK&
FORMAT=image/png&
BGCOLOR=0xFFFFFF&
TRANSPARENT=TRUE&
L’opération GetFeatureInfo
Définition:
Une requête de type GetFeatureInfo permet d'interroger les données pour en récupérer les
informations attributaires.
Les informations retournées fournissent des détails sur la ou les entités présente(s) à la
coordonnée sélectionnée (I,J) sur la carte Les détails fournis sont à la discrétion du propriétaire
du service
Pour les formats en réponse, le langage XML est principalement utilisé
Structure d’une requête HTTP de type GetCapabilities:
http://www.geosignal.org/cgi-bin/wmsmap?
VERSION=1.1.1&
SERVICE=WMS&
REQUEST=GetFeatureInfo&
X=200&
Y=200&
QUERY_LAYERS=Communes
L’opération GetFeatureInfo
Requête :
Paramètres Statuts Description
VERSION=1.1.1 O Version de requête
SERVICE=WMS M Type de Service
REQUEST=GetFeatureInfo M Nom de la requête
QUERY_LAYER=Communes M Liste des couches à interroger
X=200 M Coordonnées en pixels de la donnée à interroger
Y=200 M Coordonnées en pixels de la donnée à interroger
FEATURE_COUNT=number O Nombre d’élément souhaités
Réponse :
La requête GetFeatureInfo permet de retourner au client un flux XML contient toutes
les informations de la couche demandé.
Web Feature Service (WFS)
Permet la mise à disposition et la gestion en ligne d’entrepôts de données géographiques
vecteur
Définit des interfaces pour accéder aux données et manipuler des opérations sur des entités
géographiques en utilisant HTTP
Les données sont soit locales (fichier SIG sur le serveur),soit distantes (SGBD ou autre WFS)
et sont délivrées en GML !
Les données peuvent ensuite être à nouveau traitées par le client (SIG) ou par un autre service
géographique en ligne (WMS, WFS) !
Service web vectoriel accessible par une url normalisée. Un serveur WFS doit répondre à 5
types de requêtes :
GetCapabilities
DescribeFeatureType
GetFeature
LockFeature
Transaction
Quelles sont les requêtes possibles?
Les principales types de requêtes utilisées sont:
La partie décrivant les capacités du serveur WFS se situe entre les deux balises Capability :
<Capability> <Post
<Request> onlineResource="http://geolittoral.application.equipement.gouv.f
<GetCapabilities> r/.../map/metropole.www.map&"/>
<DCPType> </HTTP>
<HTTP> </DCPType>
<Get </GetCapabilities>
onlineResource="http://geolittoral.application.equipement.gouv.f <DescribeFeatureType>...</DescribeFeatureType>
r/.../map/metropole.www.map&"/> <GetFeature>...</GetFeature>
</HTTP> <Transaction>...</Transaction>
</DCPType> <LockFeature>...</LockFeature>
<DCPType> <GetFeatureWithLock>...</GetFeatureWithLock>
<HTTP> </Request>
</Capability>
L’opération DescribeFeatureType
Définition
En nous basant sur la requête GetCapabilities, nous savons donc que le serveur que
nous interrogeons possède des couches.
Nous souhaiterions maintenant avoir plus de détails sur cette donnée et en particulier
sur sa structure. C'est là qu'intervient la requête de type DescribeFeatureType qui
retourne un fichier XML où sont décrit entre les balises séquence chaque champs
ainsi que son type.
Attributaires
Client SIG
Créer des cartes
thématiques
Géographiques
Client Web
Visualisation via un
navigateur
Solutions Open Source - gratuité, libre redistribution, communauté
de développement
Quelles sont les différences entre une table et une feuille Excel ?
Modèle des Le modèle de données est réalisé lors de la phase de
données conception de la base de données
Contraintes
Clé primaire
identifiant
unique et obligatoire
Clé étrangère
lien entre les tables
Langage SQL
LDD LMD
Définition des données Manipulation des données
Exemple :
Exemple :
SELECT bassin_versant, count(gid), sum(volume_capte), avg(volume_capte)
FROM pression.prelevement
GROUP BY bassin_versant
Particularités d'une base de
données spatiale ?
Les bases de données spatiales permettent le stockage et la
manipulation des objets spatiaux comme les autres objets de la base
de données.
• Types de données spatiales fait référence aux géométries de type point,
ligne et polygone
• L’indexation spatiale est utilisée pour améliorer les performances
d’exécution des opérations spatiales
• Les fonctions spatiales, au sens SQL, sont utilisées pour accéder à des
propriétés ou à des relations spatiales
• Utilisés de manière combinée, les types de données spatiales, les index et
les fonctions fournissent une structure flexible pour optimiser les
performances et les analyses.
Type de données
spatiales
Les types de données spatiales
• Représentent les entités géographiques.
• Permettent d’accéder à des propriétés de l’entité géographique : contours,
dimension.
• Hiérarchie de type avec héritage de la structure et du comportement.
Données spatiales
La colonne
geom
La géométrie est stockée dans une colonne généralement appelée geom
• Polygone
POLYGON((0 0, 1 0, 1 1, 0 1, 0 0)) POLYGON((0 0, 10
0, 10 10, 0 10, 0 0),(1 1, 1 2, 2 2, 2 1, 1 1))
Parmi les plus utiles, on peut trouver celles-ci, classées en trois groupes :
La liste des fonctions possibles est très vaste, mais un ensemble commun à
l’ensemble des implémentations est défini par la spécification term:OGC SFSQL.
Cet ensemble commun est implémenté dans PostGIS.
Toutes les fonctions Postgres : http://docs.postgresql.fr/9.2/functions.html
Toutes les fonctions PostGIS : http://postgis.net/docs/reference.html
Fonctions de
récupération
• ST_Area
Retourne l’aire d’une géométrie dans l’unité
du système de référence spatiale.
• ST_Perimeter :
Retourne le périmètre de la géométrie dans
l’unité du système de référence spatiale.
• ST_Length :
Retourne la longueur de la géométrie dans
l’unité du système de référence spatiale.
Exemple :
SELECT commune, st_area(geom)
FROM contexte.commune
Fonctions de
comparaison
• ST_Distance :
Retourne la distance entre deux géométries dans
l’unité du système de référence spatiale.
• ST_Touches :
Retourne vrai si les géométries se "touchent
spatialement"
• ST_Overlaps :
Retourne vrai si les géométries se chevauchent
spatialement.
Exemple : SELECT p1.nom_pe, p2.nom_pe, st_distance(p1.geom, p2.geom)
FROM pression.prelevement_2012 p1, pression.prelevement_2012 p2
WHERE p1.gid < p2.gid
Fonctions de
construction
• ST_Union :
Retourne l'union des deux géométries.
• ST_Intersection :
Retourne la zone géographique (ou une ligne, ou un point)
que les deux géométries ont en commun. Si les géométries
sont disjointes, la fonction retourne une géométrie vide.
• ST_Difference :
Retourne une géométrie qui représente la partie de la
géométrie A qui ne croise pas la géométrie B.
Exemple :
SELECT nom_epci, st_union(geom)
FROM contexte.commune_sage
GROUP BY nom_epci
Exemple de fonctions SQL
Question 1
Q1 : quelle est la superficie de la commune ‘ Draa- Tafilalet’ ?
Reponse
SELECT ST_Area(geometry)
FROM COMMUNE
WHERE nom_com= ‘Draa- Tafilelt’ ;
Question 2
Q2 : quelle est la longueur totale des tronçons hydrographiques ?
Reponse
SELECT sum(ST-length (geometry))
FROM TRONCON- HYDROGRAPHIQUE ;
Question 3
Q3 : donner la longueur accumulée des tronçons hydrographiques qui appartiennent auxcommunes suivantes : ‘ Draa- Tafilalet’ ‘Marrakech – Safi’
‘Casablanca- Settat’
Reponse
SELECT nom_commune, SUM (ST-length(geometry) As longueur ACC
FROM commune GROUP BY nom_com
WHERE nom_com= ‘Draa Tafilalt’ or nom_com= ‘Casablanca-settat’ ;
76