Vous êtes sur la page 1sur 76

Webmapping

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?

 Depuis 10 ans, on a vu apparaître des applications web qui permettent d'accéder à


des données géographiques.

 Ces applications répondant à un besoin bien précis, elles sont destinées à diffuser
dans des navigateurs des données cartographiques interactives.

WebMapping ou la cartographie dynamique ou SIG en ligne

 La diffusion par le biais d'un site web de données cartographiques.


 L'accès à l'information doit être dynamique ce qui signifie que ce qui s'affiche doit
être le résultat d'un traitement déclenché à la demande de l'utilisateur.

4
Les technologies webMapping
 Le Webmapping regroupe l'ensemble des
technologies permettant d'afficher une carte
par internet.

 Ces technologies reposent principalement sur


trois composantes que sont: le client,
le serveur et les données.

 Le Webmapping permet donc en fonction d'une


requête d'un client au serveur cartographique de
retourner les données désirées sous la forme
d'une carte. Figure 1:Architecture d’une application Webmapping

5
Les Fonctionnalités

Une application de Webmapping permet


 De cartographier à la demande des données géographiques
 D'afficher la carte dans un navigateur

Elle permet aussi le plus souvent


 D'imprimer la carte, d'effectuer des mesures sur la carte, d'interroger les
données cartographiées afin d'accéder à leur sémantique, d'afficher cette
sémantique dans un navigateur, …

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

le Web (Tim Berners-Lee, 1989) :


 système d’information reparti en « pages web » = documents web
 basé sur la notion d’hypertexte et la notion d’hyperliens permettant de
 naviguer entre les documents web
 →les documents forment un graphe = « toile »
 des protocoles de communication HTTP, HTTPS
 des adresses pour nommer les documents : URL
 des langages pour créer les documents : HTML, CSS, javascript
 des navigateurs qui interprètent les documents

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 »

HTML5 = HTML5 + CSS3 + javascript.

9
Introduction
Le web ce sont des machines communiquant
en réseau à l'aide d'un langage commun.

Parmi ces machines, on distingue celles qui


proposent des ressources, les serveurs, et
celles qui les utilisent, les clients.

Les ressources peuvent être par exemple :


des documents hypertexte, des images, des
fichiers XML ou encore des programmes
(PHP, Java, ASP.NET, Python, Perl, ...)
chargés de les générer à la demande.

Le serveur ,c’est l’ordinateur sur lequel


se trouve une ressource

Le client, c’est l’ordinateur qui a le


droit d’accès sur le serveur
Figure 3:Architecture Client/Serveur

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

1- Le navigateur demande le fichier 2-Le serveur va cherche le fichier


truc.html au serveur dans son système de fichier
Requête HTTP
www.site.ma/page1.html

Fichier HTML encapsulé en


réponse HTTP

Affichage page1.html

4- Le navigateur reçoit le fichier et Réponse HTTP page1.html


l’affiche

3- Le serveur poste le fichier


Au navigateur

Navigateur Serveur Internet


Figure 5: L’itinéraire d’une requête pour accéder à une page web statique simple

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

1- Appel le fichier «webmap.php» par son 2-Le serveur va cherché le fichier


URL Requête HTTP dans le serveur apache

Serveur web

Réponse HTTP «commandes.php»

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

Navigateur </html> prenom=Jean


SGBD

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

1- Appel le fichier «webmap.php» par son 2-Le serveur va cherche le fichier


URL Requête HTTP dans le serveur apache

Serveur web

Réponse HTTP «webmap.php»

3- Lit le document l y a une


3- Affichage de document HTML
Serveur PHP carte dedans
dynamique

4- Reçoit l’image et l’insère dans la


page 4- Appel la carte
Serveur carto

Navigateur

19
SGBD Côté serveur
Serveur cartographique
Qu'est-ce qu'un serveur cartographique ?

Un serveur cartographique est une application chargée de gérer :

• le chargement de données géographiques depuis diverses sources


• la transformation des données dans des formats normalises par
l'OGC(Open Geospatial Consortium)
• la diffusion des donnés a travers un réseau local ou internet

Un serveur cartographique n'est pas :

• un système de stockage des données


• une application utilisable directement par un utilisateur final
Schéma détaille d'un serveur web cartographique
Les serveurs cartographiques: MapServer
Les serveurs cartographiques: GeoServer
Les serveurs cartographiques: QGIS-Server
Les serveurs cartographiques: ArcGIS-Server
Qu'est-ce qu'un client cartographique ?

Un client cartographique est une application chargée de gérer :

• le chargement d'images et éventuellement d'objet géographiques


vecteurs
• l'affichage de ces données géolocalisées
• les interactions avec l'utilisateur (zoom, déplacement, choix des
couches à afficher)
• la création ou la modification d'objets géographiques vecteurs (points,
lignes, polygones)

Un client cartographique n'est pas :


une application autonome qui contient les données géographiques
une application conçue pour réaliser elle-même des opérations géographiques
complexes (cas des clients web)
Deux types de clients cartographiques

Les clients lourds:

• ce sont des SIG bureautique capables de fonctionner en mode client/serveu


• contrainte : ces logiciels doivent être installes chez l'utilisateur
• exemples : ArcGIS, QGIS, Google Earth
• possibilités d'accès direct a une base de données : QGIS/PostGIS
ou QGIS/SQLite

Les clients web:

• ce sont des interfaces web qui proposent des fonctions d'affichage et de


manipulation de cartes
• côté utilisateur, le seul logiciel nécessaire est un navigateur web
Chargement des données côte client

• Chargement de fichiers interprétables par le client (GML, KML, OSM)


• Chargement d'objets géographiques stockes dans une base de données
• Interrogation d'un serveur cartographique et chargement des données
via les protocoles standards de l'OGC (WMS, WFS, GeoJSON, XML)
Contraintes liées aux clients web

Les clients cartographiques web posent certaines contraintes :

• liées à la taille des données : limitation nombre d'objets chargeables en même temps

• de compatibilite : navigateur installe chez l'utilisateur (Firefox/Chrome/IE/... + diferente


versions + plugins)

• de connexion : les donnees sont distantes, il faut donc une connexion internet pour pouvo
les charger
Types de clients - suite

On peut distinguer 2 niveaux de clients web :

• API Clients: OpenLayers, Leaflet, Mapscript(client développé pour


MapServer)

• Solutions clé-en-main: proposent des interfaces graphiques déjà


développées : OpenScales, LizMap
API Clients
Plateformes Clé en main – Opengeo suite -

OpenGeo Suite est une plate-forme géospatiale complète basée


sur un certain nombre de logiciels open source respectant les
normes OGC
Caractéristique:
•Stockage de données évolutif avec le
SGBD Postgre/PostGIS
•Facilité d'intégration aux sources de
données spatiales existantes avec
GeoServer
•Haute performance de livraison de cartes
web tuilés avec GeoServer et
GeoWebCache.
•Interfaces utilisateur flexibles avec
OpenLayers
•Gestion et analyse de données de bureau
avec QGIS
•Interface conviviable de monitoring via
Mapmeter
•Support des standards open open source
Service web cartographique
Définition des services web

 Dans une telle architecture, le serveur web n'est plus uniquement un


programme capable de diffuser une information directement visualisable
dans un navigateur c'est aussi un programme chargé de fournir des
ressources exploitables par d'autres programmes.
 Un Web Service, c’est une page dynamique qui n’est pas faite pour
être affichée directement, mais qui est conçue pour être intégrée
dans d’autres pages web dynamiques.
 Le navigateur appelle une page dynamique, sur un serveur, et ce serveur
va lui-même chercher de l’information dans une autre page web
dynamique. Le premier serveur joue donc le rôle du client par rapport au
second serveur.
 Cette architecture porte le nom d’architecture 3-tiers, et le serveur
intermédiaire est souvent appelé middleware.
Architecture 3-tiers
Middleware

2
6 Page dynamique

3
Navigateur Web service

5
4

7 affichage

figure 1– Architecture 3-tiers utilisant un web service


Qu’est ce qu’un service web géographique?

 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),…

Acronyme Nom Usage


WMS Web Map service Fournit une carte au format image, pouvant
correspondre à la superposition de plusieurs
couches de données.
WCS Web Coverage Service Fournit une couverture , c’est-à-dire de
l’information géographique numérique
représentant des phénomènes variant dans
l’espace et le temps (par exemple MNT,
images satellite…)
WFS Web Feature Service Fournit et permet la mise à jour de données
géographiques au format GML.
Web Map Service (WMS)
 La spécification WMS décrit une interface sur laquelle des cartes géoréférencées peuvent être
mise à disposition. Les données sont visualisées sous forme d'image (gif , png , jpeg , svg).
 Le service est composé de trois opérations pour envoyer des requêtes au serveur et obtenir des
informations (OGC, 2006): GetCapabilities, GetMap et GetFeatureInfo.
Quelles sont les requêtes possibles?
Les trois types de requêtes qu’il est possible d’utiliser sont:

GetCapabilities : Retourne une


description du serveur , des
services et des couches
disponibles

GetMap : Retourne une carte


sous forme d’image

GetFeatureInfo : Retourne les


informations de l’objet interrogé
L’opération GetCapabilities
Définition :
 Une requête de type GetCapabilities indique au serveur cartographique de renvoyer au client
un fichier XML contenant un ensemble d'information relatif à ce service.
 Permet de retourner des métadonnées sur le service en fournissant des informations sur les
ressources disponibles, ainsi que les opérations possibles avec leurs valeurs de paramètres
acceptables
 le client interroge les différents serveurs sur les types de cartes qu’ils peuvent générer (liste des
couches, format des images produites, systèmes de projections, etc.
Structure d’une requête HTTP de type GetCapabilities:
http://host[:port]/path[?{name[=value]&}]
http://localhost:8080/deegree/wms?
SERVICE=WMS&
VERSION=1.2.0&
REQUEST=GetCapabilities
L’opération GetCapabilities
Requête :
Paramètres Statuts Description
VERSION=1.3.0 O Version de requête
SERVICE=WMS M Type de Service
REQUEST=GetCapabilities M Nom de la requête
FORMAT= MIME_type O Format de sortie

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.

Structure d’une requête HTTP de type GetMap:


http://www.geosignal.org/cgi-bin/wmsmap?
VERSION=1.1.1&
SERVICE=WMS &
REQUEST=GetMap&
SRS=EPSG:4326&
BBOX=-5.13452,41.3593,10.8074,51.0757 &
WIDTH=400&
HEIGHT=400&
LAYERS=Communes&
STYLES=&
FORMAT=image/png
L’opération GetMap
Requête :

Paramètres Statuts Description


VERSION=1.1.1 O Version de requête
SERVICE=WMS M Type de Service
REQUEST=GetMap M Nom de la requête
LAYER=Communes M Liste des couches qui seront sur la carte
STYLE= O Style appliqué à la couche
SRS=EPSG:4326 M Système de projection utilisé
BBOX=-5.13452,41.3593, M Extension géographique des données (dans le même
10.8074,51.0757 système d'unité que le SRS)
HEIGHT=400 M longueur en pixels de la carte
WIDTH=400 M Largeur en pixels de la carte
FORMAT=image/png M Format de l'image
L’opération GetMap/Exemple

 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:

GetCapabilities : Retourne une description


du serveur , des services et des couches
disponibles

DescribeFeatureType: permet d'accéder à la


structure (i.e. les champs) d'une couche proposée par
le service.

GetFeature : permet quant à elle d'obtenir sous


forme d'un flux GML des entités géographiques
L’opération GetCapabilities
Définition :
 Permet de retourner des métadonnées sur le service en fournissant des informations
sur les ressources disponibles, ainsi que les opérations possibles avec leurs valeurs
de paramètres acceptables
 le client interroge les différents serveurs sur les types de cartes qu’ils peuvent
générer (liste des couches, format des images produites, systèmes de projections,
etc.
 Via les interfaces d’un WFS , il est possible de :Créer une nouvelle entité ,
supprimer une entité, Mettre à jour d’une entité ...
Structure d’une requête HTTP de type GetCapabilities:
http://My_url/Mywfs?
SERVICE=WMS&
VERSION=1.2.0&
REQUEST=GetCapabilities
L’opération GetCapabilities>Réponse
Le fichier XML est construit de la manière suivante :
<WFS_Capabilities version="1.0.0" xsi:schemaLocation="http://www.opengis.net/.../WFS-capabilities.xsd">
<Service>...</Service>
<Capability>...</Capability>
<FeatureTypeList>...</FeatureTypeList>
<ogc:FilterCapabilities>...</ogc:FilterCapabilities>
</WFS_Capabilities>

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.

Structure d’une requête HTTP de type DescribeFeatureType:


 http://cartorisque.prim.net/wfs/82?
service= wfs&
version=1.1.0&
REQUEST=describefeaturetype&
TYPENAME=ATLAS_INONDATION_ZONE_INONDABLE
L’opération GetCapabilities
Définition :
 Permet de retourner des métadonnées sur le service en fournissant des informations
sur les ressources disponibles, ainsi que les opérations possibles avec leurs valeurs
de paramètres acceptables
 le client interroge les différents serveurs sur les types de cartes qu’ils peuvent
générer (liste des couches, format des images produites, systèmes de projections,
etc.
 Via les interfaces d’un WFS , il est possible de :Créer une nouvelle entité ,
supprimer une entité, Mettre à jour d’une entité ...
Structure d’une requête HTTP de type GetCapabilities:
http://My_url/Mywfs?
SERVICE=WMS&
VERSION=1.2.0&
REQUEST=GetCapabilities
Bases de données spatiales
PostgreSQL/PostGIS
Géobase
Un outil pérenne pour l'archivage, l’interrogation et
l'exploitation des informations
Clients
Données Géobase Interface de gestion
sources administration, mise à
jour, traitement,
génération de documents

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

Base de données PostgreSQL Module spatial PostGIS


PostgreSQL est un puissant système de PostGIS confère au SGBD
gestion de données relationnel objets PostgreSQL le statut de base de
(SGBDRO). Dès le début, il a été conçu de données spatiales en ajoutant les 3
façon à pouvoir accepter des extensions supports suivants :
particulières. Une extension de • types de données spatiales,
PostgreSQL peut être développée par une • index
équipe de développement indépendante • Fonctions

PostgreSQL et PostGIS sont développés dans le respect des standards OGC


Qu'est-ce qu'une base
de données ?

 Ensemble de données structurées


 Données centralisées
 Organisation des données en tables
 Typage des données
 Implémentation de contraintes pour garantir la cohérence du
modèle
 Possibilité d'interrogation très puissante avec un langage
simple SQL
 Gestion des accès concurrents, transactions
 Gestion de la sécurité
Qu'est-ce qu'une base de
données spatiale ?

 Permet de stocker et de manipuler les objets


spatiaux comme tout autre objet de base de
données
 Bénéficie de la cohérence du modèle des
données et de l'organisation en thèmes
 Centralisation des données spatiales
 Interpolation possible des données spatiales
avec les données attributaires avec les
requêtes SQL
 Nombreuses fonctions spatiales
Notion de base de données

Organisation logique des données en tables


Colonnes
Définition du type de données : texte, numérique, date, géométrie, …
Lignes
Une ligne par entité, nombre illimité de lignes

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

Garantir la cohérence du modèle

Contraintes
Clé primaire
identifiant
unique et obligatoire

Clé étrangère
lien entre les tables
Langage SQL

 Structured Query Language


 Seul langage permettant d'agir sur les données
 Créé en 1980, normalisé ISO
 Langage simple et puissant, logique
 Non procédural, exécuté ligne à ligne
 2 groupes de commandes :
LDD LMD
Définition des données Manipulation des données
Actions sur les structures Actions sur les données elles
de données mêmes
Langage SQL

LDD LMD
Définition des données Manipulation des données

CREATE création d'objet INSERT ajout de ligne

ALTER modification d'objet UPDATE mise à jour de ligne

DROP destruction d'objet


DELETE suppression de ligne

SELECT consultation des données

95% des requêtes SQL utilisent la commande SELECT


La commande SELECT
Les clauses de la commande SELECT
SELECT <données à afficher>
FROM <tables contenant les données>
WHERE <conditions pour l'affichage des données>
ORDER BY <critères de tri>

Exemple :

SELECT gid, code_bss, resultat, date_prelevement


FROM eau.qualite_eso
WHERE aquifere = 'Alluvions'
ORDER BY gid
Requête
d'agrégation
La clause GROUP BY permet d'utiliser les fonctions d'agrégations telles que
somme, compter, moyenne, minimum, maximum, …
SELECT <critère de groupement et/ou fonctions de groupe>
FROM <tables>
GROUP BY <critère de groupement>

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

• Point : représenté par ses coordonnées X, Y


SELECT ST_AsText(geom) FROM geometries WHERE name = 'Point';
POINT(0 0)
ST_X(geom) retourne la composante X
ST_Y(geom) retourne la composante Y
• Ligne : chemin entre plusieurs points représenté par un tableau de points
SELECT ST_AsText(geom) FROM geometries WHERE name = 'Linestring';
LINESTRING(0 0, 1 1, 2 1, 2 2)
ST_Length(geometry) retourne la longueur d’une ligne
ST_StartPoint(geometry) retourne le premier point d’une ligne
ST_EndPoint(geometry) retourne le dernier point d’une ligne
ST_NPoints(geometry) retourne le nombre de points dans une ligne
La colonne
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))

• ST_Area(geometry) retourne l’aire d’un polygone


• ST_NRings(geometry) retourne le nombre de contours
(habituellement 1, plus lorsqu’il y a des trous)
• ST_ExteriorRing(geometry) retourne le contour extérieur
• ST_InteriorRingN(geometry,n) retourne le contour intérieur
numéro n
• ST_Perimeter(geometry) retourne la longueur de tous les
contours
Index spatiaux et
étendue
• Un index est une méthode d'accès à un sous-ensemble de données
• L’indexation des nombres, des chaînes de caractères et des dates est faite sur
l'ordre naturel, simple à déterminer et à gérer sous forme d'arbre

• Les bases de données spatiales


fournissent un “index spatial” qui répond à
la question : “quel objet se trouve dans une
étendue spécifique ?”
• Une étendue correspond au rectangle de
plus petite taille capable de contenir un
objet géographique.
Fonctions
spatiales
Pour pouvoir traiter et effectuer des calculs sur les types géométriques, PostGIS
fournis de nombreuses fonctions.

Parmi les plus utiles, on peut trouver celles-ci, classées en trois groupes :

• Récupération : fonctions qui permettent de récupérer les propriétés et les


mesures d’une géométrie.
• Comparaison : fonctions qui permettent de comparer deux géométries en
respectant leurs relations spatiales.
• Construction: fonctions qui permettent de construire de nouvelles
géométries à partir d’autres.

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

Vous aimerez peut-être aussi