Service Web d'entités géographiques - WFS

Un WFS est une méthode pour accéder à une base de données via le Web, et aussi pour afficher des cartes géographiques.

Il y a plusieurs façons d'utiliser un WFS. La première méthode ci-dessous affiche des cartes géographiques. Les quatre autres méthodes récupèrent des données. Vous contrôlez les lignes et les colonnes que vous souhaitez voir des tables de la banque de données. Les données récupérées sont retournées dans divers formats; en XML ("Extensible Markup Language"),en GML3 ("Geography Markup Language, version 3"), KML ("Keyhole Markup Language"), SHAPE ("ESRI Shapefile"), MIF ("MapInfo Mid/Mif format"), application/json ("Javascript Object Notation"), RSS ("Really Simple Syndication"), ATOM ("Atom Syndication Format"), etc, et ces formats peuvent être affichés dans vos pages Web et dans vos applications.

  1. Ouverture du WFS dans un SIG
  2. Coller dans l'utilitaire cwpost une requête au WFS
  3. Coller dans votre navigateur l'URI d'une requête au WFS
  4. Afficher un résultat du WFS dans votre page Web ou dans votre application
  5. Utilisation de fichiers de requêtes WFS
  6. Manuels de référence des WFS

Ces méthodes sont décrites ci-dessous.

1- Ouverture du WFS dans un SIG

Il y a plusieurs logiciels gratuits et commerciaux disponibles sur le Web qui affiche des cartes géographiques à l'aide d'un WFS. Il suffit de coller l'adresse URI suivante dans le SIG:

http://geonames.nrcan.gc.ca/wfs/cubeserv.cgi?service=wfs&datastore=cgns

Certains SIG ont de la difficulté avec le URI qui précède en raison du système de référence spatiale (CRS) utilisé. Dans ce cas, on doit utiliser l'URI suivant:

http://geonames.nrcan.gc.ca/wfs/cubeserv.cgi?service=wfs&datastore=cgns&srsname=urn::ogc:def:crs:EPSG::4326

Certains logiciels SIG demandent à l'utilisateur d'entrer un URI contenant "request=getCapabilities" ainsi que la version du WFS. Dans ce cas, on doit utiliser l'URI suivant:

http://geonames.nrcan.gc.ca/wfs/cubeserv.cgi?service=wfs&datastore=cgns &request=getCapabilities&version=1.1.0

ou

http://geonames.nrcan.gc.ca/wfs/cubeserv.cgi?service=wfs&datastore=cgns &srsname=urn::ogc:def:crs:EPSG::4326&request=getCapabilities&version=1.1.0

Lorsqu'on clique sur ces liens qui contiennent "request=getCapabilities" le WFS retourne un fichier qui décrit ses capacités. Quelques-unes des sections importantes du fichier sont expliquées ci-dessous.

Si vous n'êtes pas familier avec les WFS et que vous souhaitez faire des tests, nous vous suggérons d'utiliser un des sites de développement suivants:

http://cgns-nrcan.gc.ca/wfs/cubeserv.cgi?service=wfs&datastore=cgns

ou

http://cgns-nrcan.gc.ca/wfs/cubeserv.cgi?service=wfs&datastore=cgns&srsname=urn::ogc:def:crs:EPSG::4326

2- Coller dans l'utilitaire cwpost une requête au WFS

La banque de données BDTC peut être interrogée par le WFS en utilisant l' utilitaire cwpost qu'on trouve ici. Pour le URL du serveur, entrez:

http://geonames.nrcan.gc.ca/wfs/cubeserv.cgi?service=wfs&datastore=cgns

Tout ce que vous avez à faire par la suite, c'est de coller votre requête XML et de cliquez sur le bouton "Submit". Divers exemples de requêtes XML sont donnés dans les sections suivantes, y compris l'utilisation de critères géographiques.

3- Coller dans votre navigateur l'URI d'une requête au WFS

Cette section présente de nombreux exemples sur la façon de récupérer des données à l'aide du WFS. Vous construisez les requêtes qui utilisent le langage XML puis, vous les collez dans votre navigateur ou dans l'utilitaire cwpost expliqué à la section 2 ci-dessus.

Lorsque vous cliquez sur un des liens dans la section 1 ci-dessus, le WFS présente ses capacités ("request=getCapabilities"). Le fichier retourné montre la ligne <ows:Parameter name="TypeName">. Les lignes qui la suivent représentent les tables de la base de données mises à votre disposition par le WFS. Voici certaines de ces tables:

  • GEONAMES
  • CGNS_CODES
  • GENERIC_CODES
  • GEONAMES_POINTS
  • MAPS
  • MAPS_PRINTED_E
  • MAPS_PRINTED_F
  • PANCAN

Les exemples ci-dessous utilisent la table "GEONAMES" qui contient les noms géographiques. Les autres tables contiennent principalement des codes et leurs définitions que vous pouvez également interroger comme c'est expliqué dans notre Service d'information sur les codes.

La requête "DescribeFeatureType" qui suit, retourne les colonnes (parfois appelé les champs ou les attributs) de la table (parfois appelé la classe) sélectionnée.

http://geonames.nrcan.gc.ca/wfs/cubeserv.cgi?SERVICE=wfs&DATASTORE=cgns &request=describefeaturetype&typename=GEONAMES

Vous pouvez interroger (1) les tables que vous voulez, (2) les colonnes que vous voulez, et (3) limiter les lignes que vous voulez recevoir en utilisant un filtre.

Recherche à l'aide d'un nom géographique (dont la colonne s'appelle "Geoname")

Voici l'exemple d'un URI qui interroge un WFS. Celui-ci interroge un nom géographique de la table "Geonames" de la base de données toponymiques.

http://geonames.nrcan.gc.ca/wfs/cubeserv.cgi?service=wfs&datastore=cgns&typename=GEONAMES &request=GETFEATURE &filter=<Filter><PropertyIsEqualTo> <PropertyName>GEONAME</PropertyName> <Literal>Toronto</Literal></PropertyIsEqualTo></Filter>

L'exemple suivant est équivalent à la requête ci-dessus. C'est la version encodée qui utilise la valeur hexadécimale des caractères spéciaux. Les caractères <, >, les espaces, les apostrophes, les doubles apostrophes, etc., sont ainsi remplacés. Plusieurs caractères sont mal interprétés par les navigateurs. Lorsqu'on a un problème avec un caractère, on utilise sa version encodée en hexadécimales.

http://geonames.nrcan.gc.ca/wfs/cubeserv.cgi?service=wfs&datastore=cgns&typename=GEONAMES &request=GETFEATURE&filter=%3CFilter%3E%3CPropertyIsEqualTo%3E %3CPropertyName%3EGEONAME%3C/PropertyName%3E%3CLiteral%3EToronto%3C/Literal%3E%3C/PropertyIsEqualTo%3E%3C/Filter%3E

Ces URI peuvent être collés dans le navigateur ou insérés dans un fichier HTML, un fichier Java, un fichier PHP, un script PL/SQL ou un fichier Visual Basic, etc.

Le filtre suivant est équivalent aux filtres ci-dessus, mais il est écrit d'une façon qui est facile à lire. Ce filtre est dans le format qui peut être collé dans l'utilitaire cwpost mentionné dans la Section 2 ci-dessus.

<?xml version="1.0" encoding="UTF-8" ?>
<GetFeature srsName="EPSG:4326">
<Query typeName="GEONAMES">
<Filter>
<PropertyIsEqualTo>
<PropertyName>GEONAME</PropertyName>
<Literal>Toronto</Literal>
</PropertyIsEqualTo>
</Filter>
</Query>
</GetFeature>

Recherche à l'aide de la colonne "Name Key" et du passe-partout

Pour simplifier la recherche de noms, la table contient la colonne "Name_Key". La colonne "Name_Key" contient le nom écrit en majuscules, sans espace et sans caractères spéciaux.

L'interrogation à l'aide du "Name_Key" permet de ne pas avoir à entrer de caractères spéciaux. Par exemple, si nous ne savons pas si le nom contient un accent, un point, un tiret, etc., comme dans 'Montreal' ou 'Montréal', 'Saint', 'Saint. ', 'Saint-', 'Sainte ', 'Sainte-', 'Sainte.', 'St ', 'St.', 'St-', 'Ste ', 'Ste-' ou 'Ste.', alors il est préférable d'utiliser 'MONTREAL' ou 'S%T%'.

Voici un exemple de requête utilisant le "Name_Key" 'S%T%THERESECREEK'. Ici les pourcentages permettent d'obtenir 'Sainte-Thérèse Creek'. Une autre requête telle que '%ALBERT' retourne 'Prince Albert' et 'Mount Albert'.

<?xml version="1.0" encoding="UTF-8" ?>
<!-- This query uses the LIKE function... -->
<GetFeature srsName="EPSG:4326">
<Query typeName="GEONAMES">
<PropertyName>GEONAME</PropertyName>
<PropertyName>CGNDB_KEY</PropertyName>
<PropertyName>FEATURE_ID</PropertyName>
<PropertyName>HISTORY</PropertyName>
<PropertyName>REGION_NAME</PropertyName>
<PropertyName>REGION_ABBR</PropertyName>
<PropertyName>REGION_CODE</PropertyName>
<PropertyName>CONCISE_CODE</PropertyName>
<PropertyName>GENERIC_TERM</PropertyName>
<PropertyName>NTS_MAP</PropertyName>
<PropertyName>GEOMETRY</PropertyName>
<Filter>
<PropertyIsLike>
<PropertyName>NAME_KEY</PropertyName>
<Literal>S%T%THERESECREEK</Literal>
</PropertyIsLike>
</Filter>
</Query>
</GetFeature>

N.B. : Les lignes <PropertyName> avant la balise <Filter> permettent d'obtenir uniquement les colonnes désirées.

Recherche par clé unique de la BDTC

Quand on recherche un enregistrement spécifique connu, on peut utiliser la clé unique de la BDTC ("CGNDB Key") comme critère de recherche:

<?xml version="1.0" encoding="UTF-8" ?>
<GetFeature srsName="EPSG:4326">
<Query typeName="GEONAMES">
<Filter>
<PropertyIsEqualTo>
<PropertyName>CGNDB_KEY</PropertyName>
<Literal>EHHUN</Literal>
</PropertyIsEqualTo>
</Filter>
</Query>
</GetFeature>

Recherche par l'Identificateur d'entité (IDE)

Lorsqu'on désire rechercher tous les noms (français, anglais et autochtones) d'une entité géographique, on peut utiliser l'IDE. L'IDE relie tous les noms d'une même entité.

N.B. : L'IDE relie aussi les anciens noms au nom officiel, mais présentement, les anciens noms ne sont pas tous associés à leur nom officiel par le biais des nouveaux IDE. Alternativement, il est possible de faire une recherche des anciens noms en utilisant le champ "Related Key".

<?xml version="1.0" encoding="UTF-8" ?>
<GetFeature srsName="EPSG:4326">
<Query typeName="GEONAMES">
<Filter>
<PropertyIsEqualTo>
<PropertyName>FEATURE_ID</PropertyName>
<Literal>4d00fe4cba2011d892e2080020a0f4c9</Literal>
</PropertyIsEqualTo>
</Filter>
</Query>
</GetFeature>

Rechercher que les noms officiels (Utilisation de "And")

La base de données contient les noms officiels ainsi que les noms qui furent officiels antérieurement. Pour ne récupérer que les noms officiels actuels il faut utiliser History = '2-Official Name', dans vos critères de recherche. Pour ne récupérer que les noms qui furent officiels, il faut utiliser History = '3-Former Name'.

<?xml version="1.0" encoding="UTF-8" ?>
<GetFeature srsName="EPSG:4326">
<Query typeName="GEONAMES">
<Filter>
<And>
<PropertyIsEqualTo>
<PropertyName>HISTORY</PropertyName>
<Literal>2-Official Name</Literal>
</PropertyIsEqualTo>
<PropertyIsEqualTo>
<PropertyName>FEATURE_ID</PropertyName>
<Literal>33e24964c6ce11d892e2080020a0f4c9</Literal>
</PropertyIsEqualTo>
</And>
</Filter>
</Query>
</GetFeature>

Recherche à l'aide de la Pertinence selon l'échelle ("Relevance_at_scale" ou "RS_value")

Les noms les plus populaires sont visibles sur les cartes de l'Atlas du Canada, par exemple, à l'échelle de 1:42 million ou 1:15 million, ainsi on peut utiliser les valeurs relevance_at_scale ou RS_value qui définissent la pertinence d'un nom selon l'échelle de la carte.

<?xml version="1.0" encoding="UTF-8" ?>
<GetFeature srsName="EPSG:4326">
<Query typeName="GEONAMES">
<PropertyName>GEONAME</PropertyName>
<PropertyName>HISTORY</PropertyName>
<Filter>
<And>
<PropertyIsEqualTo>
<PropertyName>HISTORY</PropertyName>
<Literal>2-Official Name</Literal>
</PropertyIsEqualTo>
<PropertyIsEqualTo>
<PropertyName>RELEVANCE_AT_SCALE</PropertyName>
<Literal>42000000</Literal>
</PropertyIsEqualTo>
</And>
</Filter>
</Query>
</GetFeature>

ou

http://geonames.nrcan.gc.ca/wfs/cubeserv.cgi?service=wfs&datastore=cgns &typename=GEONAMES&request=GETFEATURE &propertyname=(GEONAME,HISTORY) &filter=<Filter><And><PropertyIsEqualTo> <PropertyName>HISTORY</PropertyName> <Literal>2-Official Name</Literal></PropertyIsEqualTo>
<PropertyIsEqualTo> <PropertyName>RELEVANCE_AT_SCALE</PropertyName> <Literal>42000000</Literal></PropertyIsEqualTo></And></Filter>

Recherche dans une province ou un territoire spécifique (Utilisation de "And" et "Or")

On peut limiter la recherche aux noms approuvés par une province ou un territoire. Utilisez le code de deux chiffres de la région ("Region Code") dans la liste suivante:

NL - 10
PE - 11
NS - 12
NB - 13
QC - 24
ON - 35
MB - 46
SK - 47
AB - 48
BC - 59
YT - 60
NT - 61
NU - 62

<?xml version="1.0" encoding="UTF-8" ?>
<GetFeature srsName="EPSG:4326">
<Query typeName="GEONAMES">
<PropertyName>GEONAME</PropertyName>
<PropertyName>HISTORY</PropertyName>
<Filter>
<And>
<Or>
<PropertyIsEqualTo>
<PropertyName>REGION_CODE</PropertyName>
<Literal>46</Literal>
</PropertyIsEqualTo>
<PropertyIsEqualTo>
<PropertyName>REGION_CODE</PropertyName>
<Literal>47</Literal>
</PropertyIsEqualTo>
</Or>
<PropertyIsLike>
<PropertyName>NAME_KEY</PropertyName>
<Literal>MONTREAL%</Literal>
</PropertyIsLike>
</And>
</Filter>
</Query>
</GetFeature>

Télécharger toute la banque de données - Recherche par "Region Code" et "BBox"

Il y a environ 350,000 noms dans la base de données, et le nombre maximum d'enregistrements retournés par une requête est présentement limité à 10 000. Pour télécharger toute la banque de données, il faudrait envoyer près de 41 longues requêtes.

N.B. : Toute la base de données est facilement disponible dans des fichiers mis à jour hebdomadairement tel que décrit dans notre section Données numériques.

Voici une requête combinant la région (code) avec une zone géographique (BBOX) dans les critères de recherche. Certaines provinces possèdent plus de 10 000 noms, et donc nécessiteraient plusieurs requêtes qui les découpent en plusieurs zones rectangulaires définies par des latitudes et des longitudes (en utilisant le paramètre BBOX).

http://geonames.nrcan.gc.ca/wfs/cubeserv.cgi?service=wfs&datastore=cgns&typename=GEONAMES &propertyname=(GEONAME, HISTORY) &request=GETFEATURE&filter=<Filter><And><PropertyIsEqualTo> <PropertyName>REGION_CODE</PropertyName> <Literal>13</Literal></PropertyIsEqualTo> <BBOX> <PropertyName>GEOMETRY</PropertyName> <Envelope srsName="EPSG:4326" > <lowerCorner>43.7 -79.4</lowerCorner> <upperCorner>43.8 -79.35</upperCorner></Envelope></BBox></And></Filter>

QC = region_code = 24 requiert 12 requêtes,
ON = region_code = 35 requiert 6 requêtes,
BC = region_code = 59 requiert 5 requêtes,
NL = region_code = 10 requiert 3 requêtes,
NS = region_code = 12 requiert 3 requêtes,
NB = region_code = 13 requiert 2 requêtes,
MB = region_code = 46 requiert 2 requêtes,
SK = region_code = 47 requiert 2 requêtes,

region_code = 11, 48, 60, 61, 62 et 73 requièrent 1 requête.

Exemple d'une requête d'une zone géographique (Utilisation de BBOX).

<?xml version="1.0" encoding="UTF-8" ?>
<GetFeature srsName="EPSG:4326">
<Query typeName="GEONAMES">
<PropertyName>GEONAME</PropertyName>
<PropertyName>HISTORY</PropertyName>
<Filter>
<BBOX>
<PropertyName>GEOMETRY</PropertyName>
<Envelope srsName="EPSG:4326">
<lowerCorner>43.7 -79.4</lowerCorner>
<upperCorner>43.8 -79.35</upperCorner>
</Envelope>
</BBOX>
</Filter>
</Query>
</GetFeature>

Exemple d'une requête d'une zone géographique (BBOX) utilisée avec "And" ou "Or".

N.B. : Le BBOX doit être la dernière contrainte:

<And>
<PropertyIsEqualTo>
<PropertyName>GENERIC_CODE</PropertyName>
<Literal>1</Literal>
</PropertyIsEqualTo>
<BBOX>
<PropertyName>GEOMETRY</PropertyName>
<Envelope srsName="EPSG:4326">
<lowerCorner>43.7 -79.4</lowerCorner>
<upperCorner>43.8 -79.35</upperCorner>
</Envelope>
</BBOX>
</And>

Utilisation de isLess ou isGreather

<PropertyIsLessThan>
<PropertyName>GENERIC_CODE</PropertyName>
<Literal>2</Literal>
</PropertyIsLessThan>

Utilisation de isLessThanOrEqualTo ou is GreatherThanOrEqualTo

<PropertyIsLessThanOrEqualTo>
<PropertyName>GENERIC_CODE</PropertyName>
<Literal>1</Literal>
</PropertyIsLessThanOrEqualTo>

Utilisation de isNull

<PropertyIsNull>
<PropertyName>FEATURE_ID</PropertyName>
</PropertyIsNull>

Utilisation de isBetween

<PropertyIsBetween>
<PropertyName>GENERIC_CODE</PropertyName>
<LowerBoundary>0</LowerBoundary>
<UpperBoundary>2</UpperBoundary>
</PropertyIsBetween>

ou

<Between>
<PropertyName>MODIFIED_DATE</PropertyName>
<LowerBoundary>
<Literal>2001-01-15T20:07:48.11</Literal>
</LowerBoundary>
<UpperBoundary>
<Literal>2001-03-06T12:00:00.00</Literal>
</UpperBoundary>
</Between>

Choix des colonnes de sortie

On peut limiter la quantité d'information retournée par le WFS en définissant uniquement les colonnes voulues. Dans l’exemple qui suit, la ligne <PropertyName>Geoname</PropertyName> fera en sorte que seule la colonne "Geoname" sera retournée parmi les résultats.

N.B. : Si aucune colonne n'est définie avec des balises <PropertyName>, toutes les colonnes sont retournées.

N.B. : Si au moins une colonne est spécifiée dans la requête, cette colonne et aussi toutes les colonnes définies comme ne pouvant être nulles (appelées "non nulle") dans la banque de données sont retournées. Il en est ainsi car les spécifications des WFS précisent qu’un site WFS doit obligatoirement retourner un document XML valide lorsqu'une validation est effectuée par rapport à sa banque de données d'origine. Donc, toutes les colonnes définies comme devant être "non nulle" seront retournées.

<?xml version="1.0" encoding="UTF-8" ?>
<GetFeature srsName="EPSG:4326">
<Query typeName="GEONAMES">
<PropertyName>GEONAME</PropertyName>
<Filter>
<PropertyIsEqualTo>
<PropertyName>CGNDB_KEY</PropertyName>
<Literal>EHHUN</Literal>
</PropertyIsEqualTo>
</Filter>
</Query>
</GetFeature>

Voici une liste des attributs dans la base de données toponymiques. Les capacités du WFS ("getCapabilities"), expliqué dans la section 1 ci-dessus, fournit la liste la plus à jour des attributs.

<PropertyName>CGNDB_KEY</PropertyName>
<PropertyName>CONCISE_CODE</PropertyName>
<PropertyName>CONCISE_GAZ_FLAG</PropertyName>
<PropertyName>COORDINATE_ACCURACY</PropertyName>
<PropertyName>DATE_CREATED</PropertyName>
<PropertyName>DATE_MODIFIED</PropertyName>
<PropertyName>DECISION_DATE</PropertyName>
<PropertyName>DECISION_DATE</PropertyName>
<PropertyName>DISPLAY_PRIORITY</PropertyName>
<PropertyName>EFFECTIVE_DATE</PropertyName>
<PropertyName>EFFECTIVE_DATE</PropertyName>
<PropertyName>ELEVATION</PropertyName>
<PropertyName>FONT_COLOR</PropertyName>
<PropertyName>FONT_SIZE</PropertyName>
<PropertyName>FONT_TYPE</PropertyName>
<PropertyName>GENERIC_CODE</PropertyName>
<PropertyName>GENERIC_TERM</PropertyName>
<PropertyName>GEOMETRY</PropertyName>
<PropertyName>GEONAME</PropertyName>
<PropertyName>HISTORY</PropertyName>
<PropertyName>HYPER_LINK</PropertyName>
<PropertyName>LANGUAGE</PropertyName>
<PropertyName>LATDEC</PropertyName>
<PropertyName>LIST</PropertyName>
<PropertyName>LOCATION</PropertyName>
<PropertyName>LONDEC</PropertyName>
<PropertyName>MAPPING_CATEGORY</PropertyName>
<PropertyName>NAME_KEY</PropertyName>
<PropertyName>NTS_MAP</PropertyName>
<PropertyName>ORIGINAL_APPROVAL_DATE</PropertyName>
<PropertyName>PC_NAME_LANG</PropertyName>
<PropertyName>PRIMARY_RELATED_KEY</PropertyName>
<PropertyName>PRIMARY_RELATED_NAME</PropertyName>
<PropertyName>REGION_ABBR</PropertyName>
<PropertyName>REGION_CODE</PropertyName>
<PropertyName>REGION_NAME</PropertyName>
<PropertyName>RELATED_KEY</PropertyName>
<PropertyName>RELEVANCE_AT_SCALE</PropertyName>
<PropertyName>RS_VALUE</PropertyName>
<PropertyName>SOURCE_CREATED</PropertyName>
<PropertyName>SOURCE_FEATURE_ID</PropertyName>
<PropertyName>SOURCE_MODIFIED</PropertyName>
<PropertyName>SOURCE_RECORD_ID</PropertyName>
<PropertyName>STATUS_CODE</PropertyName>
<PropertyName>SYNONYM_KEY</PropertyName>

Formats de sortie possibles pour les résultats

<GetFeature srsName="EPSG:4326" outputFormat="BXFS">
<GetFeature srsName="EPSG:4326" outputFormat="GML0">
<GetFeature srsName="EPSG:4326" outputFormat="GML2">
<GetFeature srsName="EPSG:4326" outputFormat="GML3">
<GetFeature srsName="EPSG:4326" outputFormat="GML3L0">
<GetFeature srsName="EPSG:4326" outputFormat="GML3L1">
<GetFeature srsName="EPSG:4326" outputFormat="KML">
<GetFeature srsName="EPSG:4326" outputFormat="SHAPE">
<GetFeature srsName="EPSG:4326" outputFormat="MIF">
<GetFeature srsName="EPSG:4326" outputFormat="RSS">
<GetFeature srsName="EPSG:4326" outputFormat="ATOM">
<GetFeature srsName="EPSG:4326" outputFormat="application/json">

N.B.: À l'exception de KML, la plupart des formats supportent srsName="urn::ogc:def:crs:epsg::4326" pour obtenir des coordonnées ordonnées en Latitude/Longitude.

4- Afficher un résultat du WFS dans votre page Web ou dans votre application

Les résultats d'une requête WFS peuvent être insérés dans votre page Web ou dans votre application. L'URI, tel qu'expliqué dans la section 3 ci-haut, peut être inséré dans vos pages Web. Puisque que les données retournées sont formatées en XML, il est commode d'utiliser du XSL pour présenter les résultats de la manière que vous désirez.

5- Utilisation de fichiers de requêtes WFS

Il peut être pratique de créer des fichiers contenant des requêtes WFS (semblables à celles montrées dans la section 3 ci-dessus). Créez un fichier avec l'extension .html (par exemple, WFS_CGNS.html) qui contient le code qui suit.

<html><head><title>WFS CGNS</title></head>
<body><h3>WFS CGNS</h3>
<form action="http://geonames.nrcan.gc.ca/wfs/cubeserv.cgi?service=wfs&datastore=cgns"
enctype="multipart/form-data" method=post>
<input type=file size=50 name="filename">
<input type="submit" value="Soumettre">
<input type="reset">
</form></br></body></html>

Double-cliquez sur le nom du fichier html, cela ouvre le fichier html dans le navigateur. Cliquez sur le bouton "Browse" et trouvez le fichier qui contient votre requête WFS (semblable à l'une de la section 3). Cliquez sur Soumettre, et vous obtenez le résultat.

Manuels de référence des WFS

D'autres exemples se trouvent dans ce document-ci qui donne la norme de l'encodage des filtres (suivez "Standard and Filter Encoding"). Utilisez la dernière version. Des manuels de référence des WFS sont disponibles sur ce même site (suivez "Standard" puis "Web Feature Service").