GéoBretagne - formation OGC

des services web aux SIG

Ce document est mis à disposition par GéoBretagne selon les termes de la
Licence Creative Commons Paternité - Partage à l'Identique 2.0 France.

Pourquoi une formation "OGC"

  • INSPIRE : services découverte, visualisation, téléchargement qui utilisent les spécifications OGC.
  • Comprendre les standards OGC pour réutiliser les données dans les architectures SIG + WEB

formation OGC

  • Les services web
    Acquérir les notions élémentaires internet 
    Savoir manipuler les outils d'analyse simples

  • Les standards OGC
    Savoir lire et utiliser les standards WMS, WFS, CSW
  • L'architecture et les services de GéoBretagne
    Comprendre l'architecture, les modules et leurs services
    Publier des
    services
    Voir les services en oeuvre dans le visualiseur
  • Réutiliser les services OGC dans les SIG
    Utiliser les services en production

 - formation OGC

des services web aux SIG

les services web

OGC:WMS

OGC:WFS

OGC:CSW

architecture
GéoBretagne

réutiliser les services

publier des services

partie 1 : services web
Les services web

  • Les services web sont des fonctionnalités exposées sur intranet ou internet pour automatiser les échanges synchrones entre systèmes informatiques.
    • intranet ou internet : protocole http et formats ouverts
    • échanges synchrones : demande et réponse dans un cours laps de temps (flux)
  • Les services Web facilitent l'interopérabilité entre systèmes informatiques en apportant des solutions aux contraintes de distance, de disponibilité, de formats, de sécurité.

 

  •   ?  XML est un format couramment utilisé : format texte, utilisable par les machines et  lisible (dans une certaine mesure) avec un simple éditeur de texte

client

serveur

données

www

question
quelle heure ?

réponse
<time>
9:45
</time>

partie 1 : services web
Le protocole HTTP

L'HyperText Transfer Protocol (HTTP) est le protocole de communication client/serveur à l'origine du World Wide Web.

Les clients HTTP les plus connus sont les navigateurs web.

 

HTTP propose plusieurs méthodes d'accès : GET, POST ...

  •   ?  Les réseaux d'entreprise imposent souvent le passage par un serveur mandataires (proxy) ou un pare-feu pour assurer sécurité et performance. Les clients reçoivent alors une configuration propre au réseau utilisé.

réseau mondial "Internet"

réseau interne "intranet"

client

proxy

serveur

www

proxy = 192.168.1.5:8080

192.168.1.5

www.monsite.com

partie 1 : services web
HTTP - composer une requête GET

  • HTTP-GET permet de préciser dans l'URL les paramètres d'appel
    • ? signale le début de la séquence de paramètres 
    • & est le séparateur entre paramètres (clé=valeur)
    • + remplace <espace>
  • exemple
    http://api.itimeteo.com/getMetar.ims?icao=LFRN&format=xml

 

paramètre

R/O

description

icao=LFRN

R

code aéroport

format=xml

O

format de sortie

decoded=true

O

décoder le message

fragment de réponse

<WindDirection>150</WindDirection>
<WindSpeed>8</WindSpeed>
<WindSpeedUnit>KT</WindSpeedUnit>
<WindSpeedKmh>15</WindSpeedKmh>
<Pressure>1005</Pressure>
<Temperature>15</Temperature>

  ?  Requested = paramètres obligatoire, Optional = paramètre facultatif
  !!  taille limitée pour l'URL (variable selon navigateur/serveur)
  !!  sécurité : la requête GET apparaît dans les journaux de connexion 

partie 1 : services web
HTTP - composer une requête POST

  • HTTP-GET est limité car on ne peut pas mettre tout ce qu'on veut dans l'URL. HTTP-POST permet de dépasser cette contrainte :
    • pour envoyer au serveur de nombreux paramètres
    • pour envoyer des fichiers
    • pour envoyer du XML ...
  • Pour composer une requête HTTP POST, il faut un formulaire web, un programme ou une extension navigateur

  ?  L'extension Firefox Poster permet de fabriquer des requêtes
HTTP GET et POST pour interagir avec des services web
  ?  sur Chrome : Dev HTTP Client, REST Console ...


partie 1 : services web
Firebug : suivi des échanges

Réseau : pour comprendre les échanges (XHR = requêtes XML)

  • temps de réponse par requête (temps serveur + temps de transit)
  • poids
  • paramètres envoyés
  • contenu de la réponse

 !!  Firebug ralentit sensiblement le navigateur

partie 1 : services web
Chrome : suivi des échanges (F12)

Réseau : pour comprendre les échanges (XHR = requêtes XML)

  • temps de réponse par requête (temps serveur + temps de transit)
  • poids
  • paramètres envoyés
  • contenu de la réponse
  • + plein d'autres options

partie 1 : services web
Exercice 1 (navigateur)

utilisation du service de géocodage OpenStreetMap nominatim http://nominatim.openstreetmap.org/search?

  •   e  obtenir les coordonnées de route de vezin, rennes au format json et xml
  •   e  visualiser les échanges dans la console. Quels sont les temps de réponse ?
  •   e  agir sur les paramètres pour détailler la réponse

paramètre

R/O

description

q=text

R

texte à géolocaliser, ex: q=avenue Patton,Rennes

countrycodes=code

O

limiter aux code pays (fr, gb...), ex: countrycodes=fr

limit=n

O

limiter à n résultats

addressdetails=0|1

O

la réponse comprend une description d'adresse

format=html|xml|json

O

format de la réponse, ex: format=xml

polygon=0|1

O

la réponse comprend un polygone délimitant les objets

- formation OGC

partie 2 : standards OGC

les services web

OGC:WMS

OGC:WFS

OGC:CSW

architecture
GéoBretagne

réutiliser les services

publier des services

partie 2 : standards OGC
Les services web OGC

L'Open Geospatial Consortium, ou OGC, est un consortium international pour développer et promouvoir des standards ouverts afin de garantir l'interopérabilité des contenus, des services et des échanges dans les domaines de l'information géographique.

 

Parmi les standards de l'OGC :

http://www.opengeospatial.org/standards/ 

  • WMS - Web Map Service
  • WFS - Web Feature Service
  • SLD - Styled Layer Descriptor
  • CSW - Catalog Service Web
  • FE - Filter Encoding
  • WCS - Web Coverage Service
  • WPS - Web Processing Service

partie 2 : standards OGC
OGC : Compliant et Implement

Seuls les serveurs peuvent être certifiés

  • OGC test suite http://www.opengeospatial.org/compliance
  • self-registered implementations
  • compliance (payant)

MapServer 5.6

Morissette, Daniel

Registered: 2009-12-18

Filter Encoding 1.0

Geography Markup Language 2.0

OpenGIS Geography Markup Language (GML) Encoding Specification 3.0

OpenGIS Sensor Observation Service 1.0.0

OpenGIS Styled Layer Descriptor (SLD) Implementation Specification 1.0

OpenGIS Styled Layer Descriptor Profile of the Web Map Service Implementation Specification 1.1.0

OpenGIS Web Coverage Service (WCS) Implementation Specification 1.1.0

OpenGIS Web Coverage Service (WCS) Implementation Specification (Corrigendum) 1.0.0

OpenGIS Web Coverage Service (WCS) Implementation Specification (Corrigendum) 1.0.0

OpenGIS Web Coverage Service (WCS) Implementation Specification Corrigendum 1 1.1.1

OpenGIS Web Feature Service (WFS) Implementation Specification 1.1.0

OpenGIS Web Map Service (WMS) Implementation Specification 1.3.0

Web Coverage Service (WCS) Implementation Standard 1.1.2

Web Feature Service 1.0.0

Web Map Context Documents 1.0

Web Map Service 1.0

Web Map Service 1.1.1

GeoServer 2.4

Penate, Rolando

Registered: 2012-10-01

Filter Encoding 1.0

Geography Markup Language 2.1.2

GeoRSS, An Introduction to 1.0.0

OGC KML 2.2.0

OpenGIS Filter Encoding Implementation Specification 1.1

OpenGIS Geography Markup Language (GML) Encoding Specification 3.0

OpenGIS Geography Markup Language (GML) Encoding Specification 3.1.1

OpenGIS Geography Markup Language (GML) Encoding Standard 3.2.1

OpenGIS Styled Layer Descriptor (SLD) Implementation Specification 1.0

OpenGIS Styled Layer Descriptor Profile of the Web Map Service Implementation Specification 1.1.0

OpenGIS Symbology Encoding Implementation Specification 1.1.0

OpenGIS Web Coverage Service (WCS) Implementation Specification 1.1.0

OpenGIS Web Coverage Service (WCS) Implementation Specification (Corrigendum) 1.0.0

OpenGIS Web Coverage Service (WCS) Implementation Specification (Corrigendum) 1.0.0

OpenGIS Web Coverage Service (WCS) Implementation Specification Corrigendum 1 1.1.1

OpenGIS Web Feature Service (WFS) Implementation Specification 1.1.0

OpenGIS Web Feature Service (WFS) Implementation Specification (Transactional) 1.1.0

OpenGIS Web Feature Service 2.0 Interface Standard (also ISO 19142) 2.0

OpenGIS Web Map Service (WMS) Implementation Specification 1.3.0

Web Feature Service 1.0.0

Web Feature Service (Transactional) 1.0.0

Web Map Service 1.0

Web Map Service 1.1.1

Web Processing Service 1.0.0

Web Map Service
fabriquer des cartes

- formation OGC

les services web

OGC:WMS

OGC:WFS

OGC:CSW

architecture
GéoBretagne

réutiliser les services

publier des services

partie 2 : standards OGC
WMS : Web Map Service

"produit dynamiquement des cartes sous la forme d'un fichier image adapté à l'affichage sur un écran d'ordinateur.

 !!  Une carte est une représentation, elle n’embarque pas les données

version 1.3.0 du 15/03/2006

(version 1.1.1 encore très répandue)

GetCapabilities décrit le service


GetMap produit des cartes

GetFeatureInfo interroge la carte
(optionnel)

partie 2 : standards OGC
WMS GetCapabilities

On obtient un document XML décrivant le service et les données disponibles.

http://geobretagne.fr/geoserver/cadastre/wms?service=WMS&request=GetCapabilities&version=1.3.0

Dans la réponse XML :

  • <Service> décrit le service et les conditions d'accès
  • <Capability><Request> décrit les opérations et formats supportés
  • <Capability><Exception> décrit les messages d'erreur
  • <Capability><Layer> liste des couches disponibles
    • <Layer queryable="1"> couche interrogeable
      • <Name> identifiant de la couche
      • <Title> <Abstract> <KeywordList> description de la couche
      • <BoundingBox CRS=”EPSG:3857” minx="1" miny="2" maxx="3" maxy="4" /> emprise
      • <Attribution> crédits pour les données
      • <MetadataURL> lien vers les métadonnées en ligne
      • <Style> <LegendURL> styles nommés et légende associée

 !!  réponse différente entre 1.1.1 <WMT_MS_Capabilities> et 1.3.0 <WMS_Capabilities>

 ?   le serveur supprime parfois tous les espaces et retours à la ligne pour réduire le trafic. Un éditeur xml permet de retrouver une syntaxe lisible.

Paramètre

M/O

Description

VERSION=version

O

version du service demandée (1.3.0)

SERVICE=WMS

M

type du service

REQUEST=GetCapabilities

M

opération demandée

partie 2 : standards OGC
Principes communs aux standards

  • opérations http GET et POST
  • autodescription des services (REQUEST=getCapabilities)
  • version de norme négociable entre le client et le serveur
  • paramètres Required/Optional (Mandatory/Optional)




  • adresses de service finit toujours avec un ? ou un & à la fin
  • formats ouverts en sortie : image/png, gml ...

Paramètre

R/O

Description

SERVICE

R

service appelé (ex: WMS)

VERSION

R

version du service (ex: 1.3.0)

REQUEST

R

opération demandée (ex: getMap)

partie 2 : standards OGC
WMS : GetMap

On obtient une carte correspondant aux données, à la localisation et au format demandés.

 !!  attention à la version. De WMS 1.3.0 à 1.1.1 : SRS (à la place de CRS), systèmes de coordonnées (CRS:84...), inversion des axes (notamment pour EPSG:4326)

 !!  STYLES est parfois facultatif dans la requête (aucune garantie !)

 !!  le respect de la casse peut être indispensable (REQUEST=GetMap et pas Request=getMAP)
 ?  les serveurs imposent parfois un temps maximum de calcul de carte

Paramètre

M/O

Description

VERSION=version

M

version du service demandée (1.3.0)

SERVICE=WMS

M

type du service

REQUEST=GetMap

M

opération demandée

LAYERS=layer_list

M

liste des couches à afficher, séparateur virgule

STYLES=style_list

M

liste des styles des couches, séparateur virgule

CRS=EPSG:nnnn

M

système de coordonnées (pour 1.1.1 : SRS à la place de CRS)

BBOX=xmin,ymin,xmax,ymax

M

coins bas-gauche et haut-droit dans les unités de Coordinate Reference System

WIDTH=output_width

M

largeur en pixels pour l'image produite

HEIGHT=output_height

M

hauteur en pixels pour l'image produite

FORMAT=output_format

M

format de sortie (image/png toujours supporté)

TRANSPARENT=TRUE|FALSE

O

carte transparente ou pas (par défaut FALSE : non transparente)

BGCOLOR=0xFFFFFF

O

couleur de fond (par défaut 0xFFFFFF)

EXCEPTIONS=exception_format

O

format des exceptions (par défaut application/vnd.ogc.se_xml)

partie 2 : standards OGC
WMS : GetMap - exemple

Paramètre

M/O

Description

VERSION=1.3.0

M

on demande la version 1.3.0 de la norme WMS

SERVICE=WMS

M

le service demandé est WMS

REQUEST=GetMap

M

on souhaite obtenir une carte

LAYERS=geob_loc:COMMUNE

M

une seule couche demandée : geob_loc:COMMUNE

STYLES=

M

le style de la couche

CRS=EPSG:4326

M

système de coordonnées WGS84

BBOX=47,-5,49,1

M

délimitation de la Bretagne : 5°W 47°N - 1°W 49°N

WIDTH=400

M

image large de 400 pixels

HEIGHT=300

M

image haute de 300 pixels

FORMAT=image/png

M

image au format png (adapté aux données vecteur)

TRANSPARENT=TRUE

O

fond transparent pour superposition sur une orthophotographie par exemple

BGCOLOR=0xF0F0FF

O

couleur de fond (ne sert à rien ici car l'image est transparente)

EXCEPTIONS=application/
vnd.
ogc.se_inimage

O

si erreur, un message est retourné incrusté dans une image

partie 2 : standards OGC
WMS : GetFeatureInfo

On obtient une liste d'objets situés aux alentours d'un point sur la carte précisée par les paramètres.

Paramètre

M/O

Description

VERSION=1.3.0

M

version du service demandée (1.3.0)

SERVICE=WMS

M

type du service

REQUEST=GetGeatureInfo

M

opération demandée

LAYERS=layer_list

M

liste des couches à afficher, séparateur virgule

STYLES=style_list

M

liste des styles des couches, séparateur virgule

CRS=EPSG:nnnn

M

système de coordonnées

BBOX=xmin,ymin,xmax,ymax

M

coins bas-gauche et haut-droit dans les unités de SRS

WIDTH=output_width

M

largeur en pixels pour l'image produite

HEIGHT=output_height

M

hauteur en pixels pour l'image produite

FORMAT=output_format

M

format de sortie

TRANSPARENT=TRUE|FALSE

O

carte transparente ou pas (par défaut non transparente)

BGCOLOR=0xFFFFFF

O

couleur de fond (par défaut 0xFFFFFF)

EXCEPTIONS=exception_format

O

format des exceptions (par défaut XML)

QUERY_LAYERS=layer_list

M

liste des couches à interroger, séparateur virgule

INFO_FORMAT=output_format

M

format de sortie pour les informations objets

FEATURE_COUNT=number

O

nombre d'objets à retourner

I=pixel_column

M

coordonnée pixel i (haut-gauche=0) du point interrogé sur la carte

J=pixel_row

M

coordonnée pixel j (haut-gauche=0) du point interrogé sur la carte

partie 2 : standards OGC

WMS : exercices

 e  interroger le serveur http://geobretagne.fr/geoserver/geob_loc/wms pour obtenir le nom de la couche des contours communaux

 e  obtenir les images suivantes (5°W 47°N - 1°W 49°N, 400x300 pixels)

 e  interroger la carte au point (200,200) avec les formats text/plain et application/vnd.ogc.gml. Quelle est la commune en ce point ?

solutions :

geob_loc:COMMUNE

http://geobretagne.fr/geoserver/geob_loc/wms?service=WMS&version=1.1.1&request=GetMap&layers=geob_loc:COMMUNE&styles=&bbox=-5,47,-1,49&width=400&height=300&srs=EPSG:4326&format=image/png&transparent=true&bgcolor=0xf0f0ff

http://geobretagne.fr/geoserver/geob_loc/wms?service=WMS&version=1.1.1&request=GetMap&layers=geob_loc:COMMUNES&styles=administratif_jaune&bbox=-5,47,-1,49&width=400&height=300&srs=EPSG:4326&format=image/png&transparent=true&exceptions=application/vnd.ogc.se_inimage

http://geobretagne.fr/geoserver/geob_loc/wms?service=WMS&version=1.1.1&request=GetMap&layers=geob_loc:COMMUNE&styles=administratif_jaune&bbox=-5,47,-1,49&width=400&height=300&srs=EPSG:4326&format=image/png&transparent=false&bgcolor=0x333333

http://geobretagne.fr/geoserver/geob_loc/wms?service=WMS&version=1.3.0&request=GetFeatureInfo&layers=geob_loc:COMMUNE&styles=administratif_jaune&bbox=47,-5,49,-1&width=400&height=300&srs=EPSG:4326&format=image/png&transparent=false&bgcolor=0x333333&query_layers=geob_loc:COMMUNE&x=200&y=200&feature_count=10&info_format=application/vnd.ogc.gml

penseffdsdsdsddddd

- formation OGC

Web Feature Service
Accéder aux données

les services web

OGC:WMS

OGC:WFS

OGC:CSW

architecture
GéoBretagne

réutiliser les services

publier des services

partie 2 : standards OGC
WFS : Web Feature Service

"L'OGC Web Feature Service permet à un client de récupérer et de mettre à jour des données géospatiales encodées selon le Geography Markup Language (GML)" - OGC 04-094 p. 10

Version 2.0 du 02/11/2010

(Version 1.0.0 encore très répandue)

GetCapabilities décrit le service

GetFeature récupère les objets

DescribeFeatureType décrit les objets

partie 2 : standards OGC
WFS : GetCapabilities

On obtient un document XML décrivant le service et les données disponibles.

ex : http://geobretagne.fr/geoserver/cadastre/wfs?service=WFS&request=GetCapabilities&version=2.0.0

Dans la réponse XML :

  • <ows:ServiceIdentification> décrit le service et les conditions d'accès
  • <ows:OperationsMetadata> décrit les opérations et formats supportés
  • <FeatureTypeList><Operations> décrit les messages d'erreur
  • <FeatureTypeList>
    • <FeatureType>
      • <Name> identifiant de la couche
      • <Title> <Abstract> <ows:Keywords> description textuelle de la couche
      • <DefaultCRS> système de coordonnées des données source
      • <ows:WGS84BoundingBox> emprise spatiale des données
  • <fes:FilterCapabilities> filtres spatiaux et scalaires disponibles pour les requêtes

 !!  réponse différente selon la version de norme

 ?   le serveur supprime parfois tous les espaces et retours à la ligne pour réduire le trafic. Un éditeur xml permet de retrouver une syntaxe lisible.

Paramètre

M/O

Description

VERSION=version

M

version du service demandée (2.0.0)

SERVICE=WFS

M

type du service (WFS)

REQUEST=GetCapabilities

M

opération demandée (GetCapabilities)

bzh:Salles_multisports

partie 2 : standards OGC
WFS : DescribeFeatureType

On obtient un document XML décrivant le schéma d'un type d'objet (FeatureType)

ex: http://geobretagne.fr/geoserver/cadastre/wfs?service=wfs&version=2.0.0&request=DescribeFeatureType&typename=CP.CadastralParcel

Dans la réponse XML :

  • description du type de géométrie, Ici, type "MultiSurface" dans le champ "geometry".
    <xsd:element maxOccurs="1" minOccurs="0" name="geometry" nillable="true"
     
    type="gml:MultiSurfacePropertyType"/>


  • description des attributs : cardinalité, nom, type. Ici, nationalcadastralreference est une chaîne et le champ est éventuellement vide.
    <xsd:element maxOccurs="1" minOccurs="0" name="nationalcadastralreference" nillable="true"

 type="xsd:string"/>

Paramètre

M/O

Description

VERSION=version

M

version du service demandée (2.0.0)

SERVICE=WFS

M

type du service (WFS)

REQUEST=DescribeFeatureType

M

opération demandée (DescribeFeatureType)

partie 2 : standards OGC
WFS : GetFeature

On obtient un document GML décrivant les objets.
http://geobretagne.fr/geoserver/anfr/wfs?SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&typenames=anfr:cartoradio_antennes&count=10&srsName=EPSG:4326
 !!  par défaut, la géométrie est retournée : attention aux géométries polylignes et polygones. Utiliser PROPERTYNAME pour sélectionner les attributs retournés

 !!  COUNT est fortement recommandé pour contrôler les temps de réponse

 ?  les serveurs imposent souvent un nombre maximum d'objets retournés

Paramètre

M/O

Description

VERSION=version

M

version du service demandée (2.0.0)

SERVICE=WFS

M

type du service (WFS)

REQUEST=GetFeature

M

opération demandée (GetFeature)

TYPENAMES=typename_list

M

liste des types d'objets à interroger, séparateur virgule

COUNT=n

O

nombre maximum d'objets retournés

srsName=EPSG:XXXX

O

projection retournée

PROPERTYNAME=property_list

O

liste des attributs retournés

OUTPUTFORMAT=

O

format retourné

FILTER=filter_list

O

liste des filtres sur les objets, séparateur virgule (OGC Filter Encoding)
Mutuellement exclusif avec FEATUREID et BBOX

FEATUREID=id_list

O

filtre par identifiant des objets retournés.
Mutuellement exclusif avec FILTER et BBOX

BBOX=xmin,ymin,xmax,ymax

O

filtre par emprise des objets retournés.
Mutuellement exclusif avec FEATUREID et FILTER

partie 2 : standards OGC

WFS : GetFeature response

partie 2 : standards OGC

WFS : GetFeature FILTER

Pour des requêtes avec filtres, on envoie par HTTP POST une "question" rédigée en XML :

service :

http://geobretagne.fr/geoserver/anfr/wfs?

requête:

<wfs:GetFeature service='WFS' version='2.0.0' xmlns:topp='http://www.openplans.org/topp' xmlns:fes='http://www.opengis.net/fes/2.0' xmlns:wfs='http://www.opengis.net/wfs/2.0' count='100'>

<wfs:Query typeNames='anfr:cartoradio_antennes'>

<fes:Filter>

<fes:PropertyIsEqualTo>

<fes:ValueReference>systeme</fes:ValueReference>

<fes:Literal>UMTS</fes:Literal>

</fes:PropertyIsEqualTo>

</fes:Filter>

</wfs:Query>

</wfs:GetFeature>

équivalent en HTTP GET :

http://geobretagne.fr/geoserver/anfr/wfs?SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&count=3&TYPENAME=anfr:cartoradio_antennes&FILTER=%3CFilter%3E%0A%3CPropertyIsEqualTo%3E%0A%3CValueReference%3Esysteme%3C%2FValueReference%3E%0A%3CLiteral%3EUMTS%3C%2FLiteral%3E%0A%3C%2FPropertyIsEqualTo%3E%0A%3C%2FFilter%3E

partie 2 : standards OGC

WFS : exercices

 e  interroger le service http://geobretagne.fr/geoserver/anfr/wfs pour trouver le nom de la couche des antennes de transmission

 e  obtenir la liste des attributs de la couche des antennes de transmission

 e  en utilisant l’extension Chrome dev HTTP client, composer une requête WFS POST en précisant adresse du service et la requête XML. Trouver 100 antennes de transmission 3G (UMTS)

http://geobretagne.fr/geoserver/drjscs/wfs?service=wfs&version=1.0.0&request=DescribeFeatureType&typename=drjscs:sport_salle_multisport

Styled Layer Descriptor

- formation OGC

les services web

OGC:WMS

OGC:WFS

OGC:CSW

architecture
GéoBretagne

réutiliser les services

publier des services

partie 2 : standards OGC

WMS+SLD : Styled Layer Descriptor

SLD est un profil de WMS conseillé pour INSPIRE. Il permet la symbolisation de données par l'utilisateur." - OGC 05-078r4 p. iv

Le standard décrivant la façon de rédiger un style est SEI 1.1.0 (Symblogy Encoding) - OGC 05-077r4 p. iv

GetCapabilities : mentionne les nouvelles capacités

<UserDefinedSymbolization SupportSLD="1" UserLayer="1" UserStyle="1" RemoteWFS="1"/>

GetMap : paramètres étendus

sld=adresse_sld

sld_body=contenu_sld

DescribeLayer : fournit le WFS associé à un WMS (optionnel)

GetLegendGraphic : fournit une image pour la légende (optionnel)

GetStyles : fournit la description XML d'un style enregistré

partie 2 : standards OGC

WMS+SLD : processus

Un service WMS étendu avec SLD permet de fabriquer des analyses thématiques à la demande.

Dans le processus, on utilise WFS pour obtenir une description des attributs.

Le client publie le document SLD sur internet pour que les serveurs puissent le récupérer

Le serveur WMS récupère le document SLD pour fabriquer la carte personnalisée.

adresse du service WMS
et nom de la couche

WMS DescribeLayer
connaître le service WFS associé à la couche WMS

rédaction de l'analyse thématique dans un document SLD

WMS GetMap
avec SLD=http://...

WFS DescribeFeatureType
description des attributs

publication du document SLD sur http://...

carte
analyse personnalisée

carte
analyse prédéfinie

WMS GetMap

fabrication d'une
carte prédéfinie
avec WMS simple

fabrication d'une
carte personnalisée
avec WMS+SLD

partie 2 : standards OGC

WMS avec style personnalisé

partie 2 : standards OGC

Exemple de Symbology Encoding

http://geobretagne.fr/geoserver/geob_loc/wms?service=wms&
version=1.1.1&request=GetStyles&layers=COMMUNE

<sld:StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:sld="http://www.opengis.net/sld"
xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml" version="1.0.0">

    <sld:NamedLayer>

        <sld:Name>geob_loc:COMMUNE</sld:Name>

        <sld:UserStyle>

            <sld:Name>administratif_jaune</sld:Name>

            <sld:Title>contours administratifs</sld:Title>

            <sld:Abstract>contours administratifs</sld:Abstract>

            <sld:FeatureTypeStyle>

                <sld:Name>entite</sld:Name>

                <sld:Title>entite administrative</sld:Title>

                <sld:Abstract>entite administrative</sld:Abstract>

                <sld:FeatureTypeName>Feature</sld:FeatureTypeName>

                <sld:SemanticTypeIdentifier>generic:geometry</sld:SemanticTypeIdentifier>

                <sld:Rule>

                    <sld:Name>default</sld:Name>

                    <sld:Title>contour</sld:Title>

                    <sld:PolygonSymbolizer>

                        <sld:Fill>

                            <sld:CssParameter name="fill">#FFFFFF</sld:CssParameter>

                            <sld:CssParameter name="fill-opacity">0</sld:CssParameter>

                        </sld:Fill>

                        <sld:Stroke>

                            <sld:CssParameter name="stroke">#ffff99</sld:CssParameter>

                        </sld:Stroke>

                    </sld:PolygonSymbolizer>

                </sld:Rule>

            </sld:FeatureTypeStyle>

        </sld:UserStyle>

    </sld:NamedLayer>
</sld:StyledLayerDescriptor>

- formation OGC

Catalog Service for the Web

consulter les métadonnées

les services web

OGC:WMS

OGC:WFS

OGC:CSW

architecture
GéoBretagne

réutiliser les services

publier des services

partie 2 : standards OGC

CSW : interroger un catalogue

CSW est un service de "découverte" des métadonnées présentes dans un catalogue :

version 2.0.2 du 23/02/2007
OGC 07-006r1


getCapabilities décrit le service

describeRecord décrit les modèles de métadonnées

getDomain obtient des listes de valeurs (ex: mots-clefs) pour fabriquer les requêtes

getRecords obtient des métadonnées

...

partie 2 : standards OGC

CSW : getRecords

http://geobretagne.fr/geonetwork/srv/fr/csw?request=GetRecords&service=CSW&version=2.0.2&namespace=xmlns(csw=http://www.opengis.net/cat/csw)&resultType=results&outputSchema=http://www.opengis.net/cat/csw/2.0.2&outputFormat=application/xml&maxRecords=10&typeNames=csw:Record&elementSetName=full&constraintLanguage=CQL_TEXT&constraint_language_version=1.1.0&constraint=AnyText+LIKE+%27%25quimper%20communaute%25%27

<csw:GetRecordsResponse xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/cat/csw/2.0.2 http://schemas.opengis.net/csw/2.0.2/CSW-discovery.xsd">

<csw:SearchStatus timestamp="2011-11-04T16:34:36"/>

<csw:SearchResults numberOfRecordsMatched="6" numberOfRecordsReturned="1" elementSet="full" nextRecord="2">

<csw:Record xmlns:geonet="http://www.fao.org/geonetwork" xmlns:ows="http://www.opengis.net/ows" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dct="http://purl.org/dc/terms/">

<dc:identifier>b604288a-35fd-41f7-9b8c-9f046fb9930d</dc:identifier>

<dc:title>Orthophotographie de Quimper Communauté(2008)</dc:title>

<dc:type>dataset</dc:type>

<dc:subject>Quimper Communaute</dc:subject>

<dc:subject>Ortho-imagerie</dc:subject>

<dc:subject>Ortho</dc:subject>

<dc:subject>Photographie aérienne</dc:subject>

<dc:subject>Référentiel</dc:subject>

<dc:subject>imageryBaseMapsEarthCover</dc:subject>

<dct:abstract>

Orthophographie numérique couleur d'une précisison de 15 cm sur le territoire de Quimper Communauté (7 communes) : superficie de 282 km2, étendu à une bande de 500 m au-delà des limites communales (52km2), soit une surface totale de 334 km2.

</dct:abstract>

<dc:language>fre</dc:language>

<dc:source>

Prestataire FIT CONSEIL. Prises de vue réalisées entre le 1/06/2008 et 30/08/2008

</dc:source>

<ows:BoundingBox crs="urn:ogc:def:crs:EPSG::RGF93 / Lambert-93 (EPSG:2154)">

<ows:LowerCorner>-3.9503887772757 47.894439879993</ows:LowerCorner>

<ows:UpperCorner>-4.2610152148181 48.10656516085</ows:UpperCorner>

</ows:BoundingBox>

<dc:URI protocol="OGC:WMS-1.1.1-http-get-map" name="ortho-quimpercommunaute" description="">http://geobretagne.fr/wmsouvert</dc:URI>

<dc:URI protocol="WWW:LINK-1.0-http--partners" name="SIG Partenaires" description="Le téléchargement des données passe par la signature d'une convention et la création d'un compte">

http://sigqc2.quimper-communaute.fr:83/Extranet/01/Default.aspx?w=1280&h=1024

</dc:URI>

</csw:Record>

</csw:SearchResults>

</csw:GetRecordsResponse>

CSW : outils

L’outil http://geobretagne.fr/geonetwork/srv/fre/test.csw propose quelques requêtes exemple

partie 2 : standards OGC

Synthèse

On sait maintenant, par le web - à distance, sur demande, avec des formats ouverts :

  • explorer un catalogue et trouver des données (CSW)
  • obtenir des cartes prédéfinies (WMS)
  • obtenir des cartes personnalisées (WMS+WFS+SLD)
  • accéder aux données (WFS)

Ces services sont "exposés" par des logiciels serveur (mapserver, geoserver, Arcgis...)

Ils sont "consommés" par des SIG prêts à l'emploi (QGIS ...) et dans les applications (visualiseur GéoBretagne ...).

partie 2 : standards OGC

Associer WMS+SLD et WFS

exemple : visualisation de la couche communes bdcarto, Bretagne entière :

  • par WFS (données) : 3.27 Mo
  • par WMS (image) : 713 Ko

utiliser WMS+SLD le plus possible pour représenter les données : cartes prédéfinies, cartes personnalisées. Avec SLD il est possible de réaliser des analyses et filtres poussés.

utiliser WFS en complément lorsque WMS ne suffit pas : requêtes sur les données, détourage des objets sélectionnés, génération de formulaires sur les attributs, modification des objets.

WMS+SLD+WFS est une combinaison riche.

- formation OGC

partie 3 : architecture de GéoBretagne

les services web

OGC:WMS

OGC:WFS

OGC:CSW

architecture
GéoBretagne

réutiliser les services

publier des services

partie 3 : architecture GéoBretagne

Trouver des services

  • Wiki GéoBretagne.fr
    geobretagne.fr (en construction)
  • présélection du visualiseur GéoBretagne
    visualiseur > Ajouter des couches > Serveurs OGC
    http://geobretagne.fr/mapfishapp/
  • recherche dans le catalogue GéoBretagne
    catalogue > rechercher "OGC"
    http://geobretagne.fr/geonetwork/
  • recherche dans le géocatalogue national
    Recherche détaillée > Filtrer "services de covisualisation"
    http://www.geocatalogue.fr/
  • http://www.spatineo.com/
  • INSPIRE : la déclaration et description des services OGC dans les catalogues est prioritaire. Elle facilite la découverte des services existants. Déclarez vos services OGC !

partie 3 : architecture GéoBretagne

Les services de GéoBretagne

service

standards supportés

contenu

WMS+SLD

WFS

cadastre

WMS+SLD

WCS

photographies aériennes

WMS+SLD

WCS

altimétrie (en préparation)

http://geobretagne.fr/geoserver/[partenaire]/wms?

WMS+SLD

WFS

données thématiques d’un partenaire

CSW

service de découverte catalogue

services de tuilage des cartes thématiques

WMS WMS-C WMTS TMS

service de tuilage des cartes OpenStreetMap

WMS WMS-C WMTS TMS

service de tuilage des SCAN et orthophotographies

partie 3 : architecture GéoBretagne

La plate-forme

L'architecture de GéoBretagne est basée sur :

  • les serveurs geoserver, geonetwork, geowebcache exposant les services,
  • les applications internes visualiseur, éditeur, extracteur consommant les services
  • les applications externes SIG, applications web, applications mobile consommant les services
  • = l'interopérabilité grâce à un socle de normes communes

 

partie 3 : architecture GéoBretagne

La performance

à observer de près, car perçus directement par l'utilisateur :

  • la disponibilité
  • le temps de réponse

  • supervision permanente (mdp) et
    tests unitaires
    http://geobretagne.fr/hobbit/
  • limites de sécurité
    count=xx, temps de calcul limité
  • optimisation du réseau
    cache, compression des flux
  • optimisation des images produites
    png optimisé, jpeg
  • optimisation des styles
    limites d'échelle (max 1000 objets)
  • optimisation des données
    index, format, généralisation
  • utilisation de cartes précalculées
    services tuilés, cache
  • performance des navigateurs
    html5, javascript
  • optimisation de l'hébergement
    répartition de charge

- formation OGC

partie 4 : publication de services

les services web

OGC:WMS

OGC:WFS

OGC:CSW

architecture
GéoBretagne

réutiliser les services

publier des services

partie 4 : publication de services

Préalable sur les données

  • encoding : UTF-8 obligatoire (ou à la rigueur ISO-8859-1 pour toutes les couches d’un producteur)
  • géométries : [multi]point, [multi]ligne, [multi]polygone fermés
  • projection : EPSG:2154 ou EPSG:3857
    détection seulement si le .prj mentionne le code EPSG
  • noms des colonnes sans accents, si possible éviter mix majuscule minuscule
  • datastore shape : character, numeric, date, logical
  • datastore postgis : beaucoup de types supportés

partie 4 : publication de services

Administration GeoServer

http://test.geobretagne.fr/geoserver/web/

gestion des couches et des agrégations de couches

gestion des styles

SLD

interface de gestion d'un service virtuel

permet d'administrer finement les couches et les styles de

http://test.geobretagne.fr/geoserver/[producteur]/wms

http://test.geobretagne.fr/geoserver/[producteur]/wfs

prévisualisation des couches

partie 4 : publication de services

Délégation d'administration

  • GéoBretagne peut déléguer la gestion d'un service producteur :
    • CQ amont de la donnée par le producteur
    • publication de la métadonnée
    • dépôt des fichiers (ajaxplorer)
    • configuration de la couche
    • fabrication des styles
    • CQ aval du service (automatisé ?)

partie 3 : architecture GéoBretagne

Visualiseur : voir les services en "live"

Le visualiseur utilise de façon intensive les services de GéoBretagne :

  • consultation du catalogue : CSW GetDomain, GetRecords
  • montage de la couche : WMS GetCapabilities, GetMap
  • interrogation ponctuelle : WMS GetFeatureInfo
  • analyse : WMS DescribeLayer, GetMap+SLD; WFS DescribeFeatureType 
  • localisation par référentiel : WMS GetCapabilities, DescribeFeatureType; WFS GetFeature

Le visualiseur est idéal pour étudier l'association de services OGC au service de fonctionnalités applicatives.

partie 3 : architecture GéoBretagne

Visualiseur : consultation du catalogue

 e  Rechercher une donnée dans le catalogue. Quel mécanisme permet la découverte des données ?

 

partie 3 : architecture GéoBretagne

Visualiseur : montage d'une couche

 e  Ajouter une couche. Comment le visualiseur obtient-il les informations sur la couche (styles, formats) ?

partie 3 : architecture GéoBretagne

Visualiseur : stylage d'une couche

 e  Editer la symbologie d'une couche. Quelles opérations sont exécutées par le visualiseur ?

- formation OGC

Partie 4 : Réutiliser les flux OGC dans un SIG

Liens utiles (wiki):

  • les services OGC de GéoBretagne
  • réutilisation des flux OGC

les services web

OGC:WMS

OGC:WFS

OGC:CSW

architecture
GéoBretagne

réutiliser les services

publier des services

partie 4 : réutiliser les flux OGC dans un SIG

Un exemple simple

http://geobretagne.fr/sviewer/?

layers=liste_couches&
title=titre

application légère pour inclusion dans un site web ou visualisation mobile

 

QGIS

Réutilisation des flux dans

ArcGis

Réutilisation des flux dans

MapInfo

Réutilisation des flux dans

Ajout d'un flux WMS sous MapInfo

Cliquez sur "Fichier" - "Ouvrir un service Web" WFS ou WMS

Pour ajouter un service cliquer sur "Serveurs" et "Ajouter" enfin copier l'URL et mettre le nom du service "Description"

Ajout d'une couche

        MapInfo ne permet pas l'accès aux données protégées.

 

Une fois l'URL saisie il suffit de sélectionner la donnée puis d'enregistrer le .tab

 

Dans le cas d'un wfs les fichiers enregistrés sont des fichiers au format mapinfo non modifiable  et limité à 50.000 lignes

 

Dans le cas d'un wms les fichiers enregistrés sont un .tab et un xml de 1ko

geobretagne - formation OGC - Google Slides