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
<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)
|
Ja | Eine durch Kommas getrennte List von Featuretypen. |
MAXFEATURES (1.0.0 oder 1.1.0)
|
Nein | Die maximale Anzahl der zurückzugebenden Features. |
STARTINDEX |
Nein | Nur für 2.0.0 und 2.0.2. Wenn die Parameter Beispielsweise für die folgende URL:
Das vorherige Attribut würde folgendermaßen lauten:
Das nächste Attribut würde folgendermaßen lauten:
|
OUTPUTFORMAT |
Nein | Abhängig von der Version:
|
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:
Beispiel für eine POST-Anforderung:
|
|
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 - 2.0.2 - |
ID |
Nein | Die Feature-ID des Features, das zurückgegeben werden soll. Die Feature-ID
|
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