GetFeature

Der Web Feature Service (WFS) kann eine Anforderung zum Abrufen von Feature-Instanzen prüfen. Zusätzlich kann der Client angeben, welche Feature-Eigenschaften abgerufen werden sollen, und die Abfrage räumlich und nicht-räumlich einschränken. Der Dienst kann die Suchergebnisse eines Features (Inhalt) basierend auf der in der „DescribeFeatureType“-Anforderung zurückgegebenen Beschreibung zurückgeben.

Eine Anwendung wendet Filter an, um eine bestimmte Reihe von Features abzurufen, die die vom Filter angegebene Bedingung erfüllen. Dies kann beispielsweise durchgeführt werden, um die zahlreichen Attribute abzurufen, unabhängig davon, ob sie geografischer oder anderer Natur sind. Mithilfe von Filtern können Kunden auch eine Reihe von Features zur Analyse auswählen, z. B. alle Merkmale von Gewässern innerhalb eines Bereichs oder einer neuen Siedlung (benutzerdefiniertes Polygon).

Beim „GetFeature“-Vorgang werden Features und angegebene Informationen zu den Features über den WFS-Server abgerufen. Ein XML-Dokument enthält den Ergebnissatz, der an den Client zurückgegeben wird.

POST-Anforderung

Die XML-Codierung einer GetFeature-Anforderung wird für WFS 2.0.0 und 2.0.2 durch das folgende XML-Schemafragment definiert:
<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> 

Die XML-Codierung einer GetFeature-Anforderung wird für WFS 1.1.0 durch das folgende XML-Schemafragment definiert:


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

Die XML-Codierung einer GetFeature-Anforderung wird für WFS 1.0.0 durch das folgende XML-Schemafragment definiert:


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

GET-Anforderung

Die GET-Anforderung enthält Folgendes:

Eingabe Erforderlich Beschreibung
SERVICE=WFS Ja Auf WFS festgelegt.
VERSION= Ja Auf 2.0.2 festgelegt. Dies ist die Version des Web Feature Service-Standards, der in dieser Version implementiert wurde (1.0.0, 1.1.0, 2.0.0 oder 2.0.2).
REQUEST=GetFeature Ja Bei einem Vorgang zum Abrufen von Features auf „GetFeature“ festlegen.
TYPENAME (1.0.0 oder 1.1.0)

TYPENAMES (1.0.0 oder 1.1.0)

Ja Eine durch Kommas getrennte List von Featuretypen.
MAXFEATURES (1.0.0 oder 1.1.0)

COUNT (2.0.0 oder 2.0.2)

Nein Die maximale Anzahl der zurückzugebenden Features.
STARTINDEX Nein Nur für 2.0.0 und 2.0.2.

Wenn die Parameter COUNT und STARTINDEX beide festgelegt sind, enthält die Antwort die nächsten und die vorherigen Attribute. Diese Attribute enthalten URLs für den nächsten Satz an Ergebnissen, indem der STARTINDEX nach COUNT erhöht oder reduziert wird.

Beispielsweise für die folgende URL:

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

Das vorherige Attribut würde folgendermaßen lauten:

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

Das nächste Attribut würde folgendermaßen lauten:

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

OUTPUTFORMAT Nein Abhängig von der Version:
  • Bei 1.0.0 lautet der Standard text/xml; subtype=gml/2.1.2.
  • Bei 1.1.0 lautet der Standard text/xml; subtype=gml/3.1.1.
  • Bei 2.0.0 und 2.0.2 lautet der Standard application/gml+xml;version=3.2.
Gespeicherte Abfrage   Nur für 2.0.0 und 2.0.2. Verwendet die Parameter STOREDQUERY_ID und ID. Nur die obligatorische ID für GetFeatureById ist zugelassen.

Beispiel für eine GET-Anforderung:

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

Beispiel für eine POST-Anforderung:

<?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 Nein Version 2.0.0 und 2.0.2 verwenden unterschiedliche ID-Formate (URN bzw. URL). Das URN-Format ist weiterhin für 2.0.2 zugelassen, ist jedoch veraltet.

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

2.0.2 -http://www.opengis.net/def/query/OGC-WFS/0/GetFeatureById oder urn:ogc:def:query:OGC-WFS::GetFeatureById (veraltet)

ID Nein Die Feature-ID des Features, das zurückgegeben werden soll.

Die Feature-ID miwfs-2D-World-2D-1 ist beispielsweise aus Folgendem zusammengesetzt:

  • miwfs = Schema
  • 2D = zweidimensional
  • World = Name des Features
  • 1 = das zurückzugebende Feature nach Featureschlüssel

Beispielsweise für v2.0.2:


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

Beispielsweise für v1.1.0:


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