GetFeature

Web Feature Service (WFS) peut soumettre une requête de récupération d'instances de fonction. Le client peut également définir les propriétés des fonctions à récupérer et limiter la requête d'un point de vue spatial ou non spatial. Le service peut renvoyer les résultats de recherche d'une fonction (contenu) basés sur la description renvoyée dans la requête DescribeFeatureType.

Une application utilise des filtres pour récupérer un ensemble donné de fonctions remplissant les conditions définies par le filtre. Il est par exemple possible d'obtenir différents attributs, géographiques ou non. Les filtres permettent également aux clients de sélectionner un ensemble de fonctions à des fins d'analyse, par exemple, toutes les fonctions hydrographiques d'une région ou d'un nouveau développement immobilier (un polygone personnalisé).

L'opération GetFeature récupère les fonctions et les informations données sur la fonction auprès du serveur WFS. Un document XML contenant les résultats est renvoyé au client.

Requête POST

Le codage XML d'une requête GetFeature est défini par le fragment de schéma XML pour WFS 2.0.0 et 2.0.2 :
<xsd:elementname="GetFeature" type="wfs:GetFeatureType"/>
	<xsd:complexType name="GetFeatureType">
		<xsd:sequence>
			<xsd:elementref="wfs:Query" maxOccurs="unbounded"/>
		</xsd:sequence>
		<xsd:attributename="version" type="xsd:string" use="required" fixed="2.0.2"/>
		<xsd:attributename="service" type="xsd:string" use="required" fixed="WFS"/>
		<xsd:attributename="handle" type="xsd:string" use="optional"/>
		<xsd:attributename="outputFormat" type="xsd:string" use="optional" default="application/gml+xml;version=3.2"/>
		<xsd:attributename="count" type="xsd:positiveInteger" use="optional"/>
	</xsd:complexType>
<xsd:elementname="Query" type="wfs:QueryType"/>
	<xsd:complexType name="QueryType">
		<xsd:sequence>
			<xsd:elementref="ogc:PropertyName" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:elementref="ogc:Filter" minOccurs="0" maxOccurs="1"/>
		</xsd:sequence>
		<xsd:attributename="handle" type="xsd:string" use="optional"/>
		<xsd:attributename="srsName" type="xsd:anyURI " use="optional"/>
		<xsd:attributename="typeNames" type="xsd:QName" use="required"/>
	</xsd:complexType> 

Le codage XML d'une requête GetFeature est défini par le fragment de schéma XML pour WFS 1.1.0 :


<xsd:elementname="GetFeature" type="wfs:GetFeatureType"/>
<xsd:complexType name="GetFeatureType">
    <xsd:sequence>
        <xsd:elementref="wfs:Query" maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attributename="version" type="xsd:string" use="required" fixed="1.1.0"/>
    <xsd:attributename="service" type="xsd:string" use="required" fixed="WFS"/>
    <xsd:attributename="handle" type="xsd:string" use="optional"/>
    <xsd:attributename="outputFormat" type="xsd:string" use="optional" default="text/xml; subtype=gml/3.1.1"/>
    <xsd:attributename="maxFeatures" type="xsd:positiveInteger" use="optional"/>
</xsd:complexType>
<xsd:elementname="Query" type="wfs:QueryType"/>
<xsd:complexType name="QueryType">
    <xsd:sequence>
        <xsd:elementref="ogc:PropertyName" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:elementref="ogc:Filter" minOccurs="0" maxOccurs="1"/>
    </xsd:sequence>
    <xsd:attributename="handle" type="xsd:string" use="optional"/>
    <xsd:attributename="srsName" type="xsd:anyURI " use="optional"/>
    <xsd:attributename="typeName" type="xsd:QName" use="required"/>
    <xsd:attributename="featureVersion" type="xsd:string" use="optional"/>
</xsd:complexType>

Le codage XML d'une requête GetFeature est défini par le fragment de schéma XML pour WFS 1.0.0 :


<xsd:elementname="GetFeature" type="wfs:GetFeatureType"/>
<xsd:complexType name="GetFeatureType">
    <xsd:sequence>
        <xsd:elementref="wfs:Query" maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attributename="version" type="xsd:string" use="required" fixed="1.0.0"/>
    <xsd:attributename="service" type="xsd:string" use="required" fixed="WFS"/>
    <xsd:attributename="handle" type="xsd:string" use="optional"/>
    <xsd:attributename="outputFormat" type="xsd:string" use="optional" default="xmlschema"/>
    <xsd:attributename="maxFeatures" type="xsd:positiveInteger" use="optional"/>
</xsd:complexType>
<xsd:elementname="Query" type="wfs:QueryType"/>
<xsd:complexType name="QueryType">
    <xsd:sequence>
        <xsd:elementref="ogc:PropertyName" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:elementref="ogc:Filter" minOccurs="0" maxOccurs="1"/>
    </xsd:sequence>
    <xsd:attributename="handle" type="xsd:string" use="optional"/>
    <xsd:attributename="srsName" type="xsd:anyURI " use="optional"/>
    <xsd:attributename="typeName" type="xsd:QName" use="required"/>
    <xsd:attributename="featureVersion" type="xsd:string" use="optional"/>
</xsd:complexType>

Requête GET

La requête GET contient :

Input Obligatoire Description
SERVICE=WFS Oui Défini sur WFS.
VERSION= Oui Défini sur 2.0.2. Il s'agit de la version de la norme Web Feature Service déployée dans cette version (1.0.0, 1.1.0, 2.0.0 ou 2.0.2).
REQUEST=GetFeature Oui Défini sur GetFeature pour une opération d'obtention de fonction.
TYPENAME (1.0.0 ou 1.1.0)

TYPENAMES (1.0.0 ou 1.1.0)

Oui Liste de types de fonction séparés par des virgules.
MAXFEATURES (1.0.0 ou 1.1.0)

COUNT (2.0.0 ou 2.0.2)

Non Nombre maximal de fonctions à renvoyer.
STARTINDEX Non Pour 2.0.0 et 2.0.2 uniquement.

Si les deux paramètres COUNT et STARTINDEX sont définis, la réponse contient les attributs précédent et suivant. Ces attributs contiennent les URL du jeu de résultats suivant via l'incrémentation ou la décrémentation de STARTINDEX par COUNT.

Par exemple, pour l’URL :

http://<server>:<port>/rest/Spatial/WFS?SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&STARTINDEX=11&RESULTTYPE=results&COUNT=10&TYPENAMES=ns29:World

L’attribut précédent serait :

http://<server>:<port>/rest/Spatial/WFS?SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&STARTINDEX=1&RESULTTYPE=results&COUNT=10&TYPENAMES=ns29:World

L’attribut suivant serait :

http://<server>:<port>/rest/Spatial/WFS?SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&STARTINDEX=21&RESULTTYPE=results&COUNT=10&typenames=ns29:World

OUTPUTFORMAT Non Suivant la version :
  • Pour 1.0.0, la valeur par défaut est text/xml; subtype=gml/2.1.2
  • Pour 1.1.0, la valeur par défaut est text/xml; subtype=gml/3.1.1
  • Pour 2.0.0 et 2.0.2, la valeur par défaut est application/gml+xml;version=3.2.
Requête stockée   Pour 2.0.0 et 2.0.2 uniquement. Utilise les paramètres STOREDQUERY_ID et ID. Seul l’ID obligatoire de GetFeatureById est autorisé.

Exemple de requête GET :

http://localhost:8097/rest/Spatial/WFS?SERVICE=WFS&VERSION=2.0.0&REQUEST=GetFeature&STOREDQUERY_ID=urn:ogc:def:query:OGC-WFS::GetFeatureById&ID=miwfs-2D-World-2D-1

Exemple de requête POST :

<?xml version="1.0" encoding="UTF-8"?>
<wfs:GetFeature version="2.0.2" service="WFS" xmlns:wfs="http://www.opengis.net/wfs/2.0"
 <wfs:StoredQuery id="urn:ogc:def:query:OGC-WFS::GetFeatureById">
  <wfs:Parameter name="id">miwfs-2D-World-2D-1
  </wfs:Parameter>
 </wfs:StoredQuery></wfs:GetFeature>
STOREDQUERY_ID Non Les versions 2.0.0 et 2.0.2 utilisent des formats d'ID différents (URN et URL). Le format URN est encore autorisé pour 2.0.2, mais il a été déprécié.

2.0.0 -urn:ogc:def:query:OGC-WFS::GetFeatureById

2.0.2 -http://www.opengis.net/def/query/OGC-WFS/0/GetFeatureById ou urn:ogc:def:query:OGC-WFS::GetFeatureById (déprécié)

ID Non ID de fonction de la fonction à renvoyer.

Par exemple, l’ID de fonction miwfs-2D-World-2D-1 se compose de :

  • miwfs = schéma
  • 2D = bidimensionnel
  • World = nom de fonction
  • 1 = fonction à renvoyer par la clé de fonction

Par exemple, pour v2.0.2 :


http://<server>:<port>/rest/Spatial/WFS?SERVICE=WFS&VERSION=2.0.2&REQUEST=GetFeature&TYPENAMES=World&COUNT=10

Par exemple, pour v1.1.0 :


http://<server>:<port>/rest/Spatial/WFS?SERVICE=WFS&VERSION=1.1.0&REQUEST=GetFeature&TYPENAME=World&MAXFEATURES=10