Beispiele zur Nutzung des Web Feature Service - geoportal

Geoproxy Freistaat Thüringen
Web Feature Service
- Beispiele zur Nutzung -
Stand: 20.04.2015
Dokumentenhistorie
Version
1.3
1.2
1.1
Datum
20.04.2015
08.12.2014
08.10.2013
1.0
17.07.2012
Bemerkungen
Anpassungen basierend auf neuem Geoproxy Release
basierend auf Beispielen für frei verfügbare Features
Kapitel zu Sonderzeichen und Umlauten hinzugefügt
zusätzlich Abfragen in HTTP GET
basierend auf WFS 1.1.0
Abfragen in HTTP POST
Geoproxy Thüringen
Beispiele zur Nutzung des Web Feature Service
Seite 2 von 12
Inhaltsverzeichnis
1.
2.
3.
4.
5.
6.
7.
8.
9.
Einleitung ............................................................................................................................................. 3
Anfrage nach WFS-Fähigkeit = GetCapabilities .................................................................................. 4
Anfrage nach Beschreibung für ein FeatureType = DescribeFeatureType ......................................... 4
Anfrage nach Features eines FeatureType ......................................................................................... 5
Anfrage nach Features über räumliche Einschränkung - BBOX ......................................................... 6
Variante 1 – Suche und Ausgabe über identische Koordinatensysteme .................................. 6
Variante 2 – Suche und Ausgabe über verschiedene Koordinatensysteme ............................. 7
Anfrage nach Features über räumliche Einschränkung – Spezialfall Punkt ....................................... 8
Variante 1 – Suche über BBOX ................................................................................................. 8
Variante 2 – Suche über Punkt .................................................................................................. 9
Anfrage nach Features über räumliche Einschränkung – Spezialfall Polygon.................................. 10
Anfragen über Attributinhalte ............................................................................................................. 11
Anhang – Konvertierung von Sonderzeichen .................................................................................... 12
Geoproxy Thüringen
1.
Beispiele zur Nutzung des Web Feature Service
Seite 3 von 12
Einleitung
Referenz: Dokument "Verwendung der OGC-Services des Geoproxy" v0.5
Mittels des Web Feature Service (WFS) kann man webbasiert auf die vektoriellen Geodaten des
Geoproxy zugreifen.
Diese Geodaten werden allgemein als Features bezeichnet. Gleichartig modellierte Geodaten (z.B.
Wasserläufe) sind in einem Feature Type gespeichert und können aus Geometrie- und Attributinformationen bestehen. Ein konkretes Element eines Feature Types (z.B. der Mühlbach) wird als Feature
Instance bezeichnet.
Im Rahmen der OGC- Spezifikationen (Open Geospatial Consortium) werden die Antworten des Dienstes
als unabhängiges Dateiformat GML (Geography Markup Language) zurückgeliefert, dabei wird auf das
Hypertext Transfer Protocol (HTTP) zurückgegriffen.
Der Ablauf einer Kommunikation zwischen Nutzer (Client) und Anbieter (Server) über den Dienst (WFS)
verläuft wie folgt und wird in den folgenden Kapiteln näher erläutert.

GetCapabilties Request - Der Nutzer fragt nach den Fähigkeiten des WFS und den im Dienst
angebotenen Feature Types. Als Antwort liefert der Dienst ein XML-Dokument mit allgemeinen
Angaben zum Anbieter, den Feature Types sowie den möglichen Operationen.

DescribeFeatureType Request - Im zweiten Schritt fragt der Nutzer nach der Beschreibung eines
konkreten Feature Types, um Informationen über die Struktur zu erhalten.

GetFeature Request - In den folgenden Schritten werden gezielte Anfragen nach einzelnen oder
mehreren Elementen (Feature Instances) gestellt, hierbei werden vom Dienst die eigentlichen
Geodaten zurückgeliefert. Dabei kann die Suche und Auswahl über räumliche und/oder
vergleichende Operatoren entsprechend detailliert werden.
Sofern der Nutzer eine Softwarelösung (z.B.: GIS oder CAD) besitzt, die WFS-fähig ist, ist es im Regelfall
ausreichend, den Dienst als URL zu hinterlegen und ggf. die Authentifizierung zu beachten, die weiteren
Operationen übernimmt – analog zur Nutzung des Web Map Service - die Software.
Anderenfalls sind folgend exemplarische Hinweise zur generischen Nutzung eines WFS gegeben, die
bspw. im Rahmen von Testung, Vergleich zur eingesetzten Softwarelösung oder eigenständiger Softwareentwicklung genutzt werden können.
Problematisch für die Verwendung von HTTP Get kann die Länge der Anfrage sein, daher sollten die
Anfragen in der Regel über HTTP Post laufen, dies betrifft speziell die konkreten Abfragen nach Features.


Anfragen über HTTP Get können direkt im Browser abgesetzt werden
Anfragen über HTTP Post sollten im Rahmen der Testung z.B. über den generic OGC WebService
client des Geoproxy abgesetzt werden,
URL: http://www.geoproxy.geoportal-th.de/geoproxy/client/client.html
Für praktische Zwecke wurden Layer aus dem Bereich Gemarkungsübersicht im Geoproxy für WFS
konfiguriert. Als konkretes Beispiel sollen Anfragen zu Flurobjekten (FeatureType
tlvermgeo:th_etrs89utm32_flur) gestellt werden, die ohne Autorisierung erreichbar sind.
Die Antworten des Dienstes werden zum Zwecke der Vergleichbarkeit komplett wie vom Browser übermittelt angegeben, es wurden lediglich einige Kürzungen (z.B. bei den Polygonkoordinaten) vorgenommen.
Da diverse Anwender nach wie vor noch im CRS EPSG:31468 (Gauß-Krüger-Koordinaten, 4.Streifen, PD83) arbeiten,
sind diverse Beispiele hierfür ausgeführt, in künftigen Versionen dieses Dokuments wird dann vermehrt auf das CRS
EPSG:25832 (UTM-Koordinaten, Zone 32, ETRS89) verwiesen, jedoch können alle Beispiele schon jetzt für die UTMAbbildungen bei entsprechender Anpassung der Parameter genutzt werden. Es ist zu beachten, dass im Bereich der
OGC konformen Dienste die Anfragen standardkonform OHNE Zonenkennung für die Ostwerte erfolgen, wenn die in
Thüringen benötigten EPSG-Codes 25832 (Zone32) bzw. 25833 (Zone 33) verwendet werden.
Geoproxy Thüringen
2.
Beispiele zur Nutzung des Web Feature Service
Seite 4 von 12
Anfrage nach WFS-Fähigkeit = GetCapabilities
Anfrage, welche üblicherweise zu Beginn einer Sitzung gestellt wird.
http://www.geoproxy.geoportal-th.de/geoproxy/services?
REQUEST=GetCapabilities&VERSION=1.1.0&SERVICE=WFS
<?xml version="1.0" encoding="UTF-8"?>
<wfs:GetCapabilities service="WFS"
xmlns:wfs="http://www.opengis.net/wfs"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/wfs
http://schemas.opengis.net/wfs/1.1.0/wfs.xsd"/>
3.
HTTP GET
HTTP POST
Anfrage nach Beschreibung für ein FeatureType = DescribeFeatureType
Anfrage, welche Informationen über die Struktur (Geometrie und Sachdaten) der Service zu bestimmten
FeatureTypes liefern kann. Wird in der Regel nach GetCapabilities gestellt und dient als Informationsquelle
für die nachfolgenden Anfragen.
HTTP GET
http://www.geoproxy.geoportalth.de/geoproxy/services?SERVICE=WFS&VERSION=1.1.0&REQUEST=DescribeFeatureType&T
YPENAME=tlvermgeo:th_etrs89utm32_flur&NAMESPACE=xmlns(tlvermgeo=http://www.geop
roxy.geoportal-th.de/tlvermgeo)
<?xml version="1.0" encoding="UTF-8"?>
<wfs:DescribeFeatureType version="1.1.0" service="WFS"
xmlns:gml="http://www.opengis.net/gml"
xmlns:ogc="http://www.opengis.net/ogc"
xmlns:wfs="http://www.opengis.net/wfs"
xmlns:tlvermgeo="http://www.geoproxy.geoportal-th.de/tlvermgeo"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/wfs
http://schemas.opengis.net/wfs/1.1.0/wfs.xsd">
<wfs:TypeName>tlvermgeo:th_etrs89utm32_flur</wfs:TypeName>
</wfs:DescribeFeatureType>
HTTP POST
 Antwort: Es wird das Schema für den FeatureType geliefert.
<?xml version="1.0" encoding="UTF-8"?>
-<schema xmlns="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.geoproxy.geoportalth.de/tlvermgeo" xmlns:tlvermgeo=„http://www.geoproxy.geoportal-th.de/tlvermgeo“ xmlns:dog="http://www.lverma.nrw.de/namespaces/dog"
xmlns:csw="http://www.opengis.net/cat/csw" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:tlbv="http://www.geoproxy.geoportal-th.de/tlbv" xmlns:tlvermgeo="http://www.geoproxy.geoportal-th.de/tlvermgeo" xmlns:xgdmeditor="http://www.geoproxy.geoportalth.de/xgdmeditor" xmlns:iso19112="http://www.opengis.net/iso19112" xmlns:tmblv="http://www.geoproxy.geoportal-th.de/tmblv" xmlns:gmd="http://www.isotc211.org/2005/gmd"
xmlns:gco="http://www.isotc211.org/2005/gco" xmlns:tmlnu="http://www.geoproxy.geoportal-th.de/tmlnu" xmlns:gml="http://www.opengis.net/gml">
<import schemaLocation="http://schemas.opengis.net/gml/3.1.1/base/gml.xsd" namespace="http://www.opengis.net/gml"/>
-<element substitutionGroup="gml:_Feature" name="th_etrs89utm32_flur">
-<complexType> -<complexContent> -<extension base="gml:AbstractFeatureType">
-<sequence>
<element type="string" name="Flur_ID" minOccurs="0"/>
<element type="string" name="Flur" minOccurs="0"/>
<element type="integer" name="Gemarkung_ID" minOccurs="0"/>
<element type="string" name="Gemarkung" minOccurs="0"/>
<element type="integer" name="Gemeinde_ID" minOccurs="0"/>
<element type="string" name="Gemeinde" minOccurs="0"/>
<element type="integer" name="Verwaltungsgemeinschaft_ID" minOccurs="0"/>
<element type="string" name="Verwaltungsgemeinschaft" minOccurs="0"/>
<element type="integer" name="erfuellendeGemeinde_ID" minOccurs="0"/>
<element type="string" name="erfuellendeGemeinde" minOccurs="0"/>
<element type="integer" name="Landkreis_ID" minOccurs="0"/>
<element type="string" name="Landkreis" minOccurs="0"/>
<element type="integer" name="Grundbuchamt_ID" minOccurs="0"/>
<element type="string" name="Grundbuchamt" minOccurs="0"/>
<element type="integer" name="Finanzamt_ID" minOccurs="0"/>
<element type="string" name="Finanzamt" minOccurs="0"/>
<element type="integer" name="Katasterbereich_ID" minOccurs="0"/>
<element type="string" name="Katasterbereich" minOccurs="0"/>
<element type="integer" name="Bundesland_ID" minOccurs="0"/>
<element type="string" name="Bundesland" minOccurs="0"/>
<element type="gml:GeometryPropertyType" name="geom" minOccurs="0"/>
</sequence></extension></complexContent></complexType></element></schema>
Geoproxy Thüringen
Beispiele zur Nutzung des Web Feature Service
Seite 5 von 12
4.-7.) Hinweise für konkrete Anfragen nach Features = GetFeature



4.
Die folgenden Anfragen stellen häufig verwendete Anwendungsfälle dar, die Möglichkeiten richten
sich nach den Angaben aus den GetCapabilities
Im Schema deaktivierte Attribute werden nicht übertragen.
Anfragen sollten möglichst über HTTP Post gestellt werden.
Anfrage nach Features eines FeatureType
In diesem Beispiel wird eine ungefilterte Anfrage gestellt, die Anzahl der zurück gelieferten Features jedoch
auf 10 begrenzt.
HTTP GET
http://www.geoproxy.geoportal-th.de/geoproxy/services?
SERVICE=WFS&VERSION=1.1.0&REQUEST=GetFeature&TYPENAME=tlvermgeo:th_etrs89utm32_
flur&NAMESPACE=xmlns(tlvermgeo=http://www.geoproxy.geoportalth.de/tlvermgeo)&MAXFEATURES=10
<?xml version="1.0" encoding="UTF-8"?>
<wfs:GetFeature version="1.1.0"
xmlns:wfs="http://www.opengis.net/wfs"
xmlns:gml="http://www.opengis.net/gml"
xmlns:ogc="http://www.opengis.net/ogc"
xmlns:tlvermgeo="http://www.geoproxy.geoportal-th.de/tlvermgeo"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/wfs
http://schemas.opengis.net/wfs/1.1.0/wfs.xsd"
maxFeatures="10">
<wfs:Query typeName="tlvermgeo:th_etrs89utm32_flur">
</wfs:Query>
</wfs:GetFeature>
Antwort: Informationen über 10 beliebige Features werden übertragen
HTTP POST
Geoproxy Thüringen
5.
Beispiele zur Nutzung des Web Feature Service
Seite 6 von 12
Anfrage nach Features über räumliche Einschränkung - BBOX
In Beispiel 4 wurde kein Koordinatenreferenzsystem (CRS) mitgegeben, die Antworten erfolgen entweder
im nativen CRS, d.h., in dem System, in welchem die Daten in der Datenbank vorliegen oder in dem CRS,
welches dienstseitig als DefaultCRS definiert worden ist.
Im folgenden Beispiel wird eine gefilterte Anfrage (räumliche Einschränkung auf ein Gebiet südlich von
Gotha, 1x1 km²) gestellt, die Anzahl der zurück gelieferten Features nicht begrenzt. Bei der Verwendung
des BBOX-Operators wird von einem regelmäßigen Rechteck ausgegangen
Variante 1 – Suche und Ausgabe über identische Koordinatensysteme
Hier ist zu beachten, dass zum einen das CRS für die räumliche Einschränkung (den Operator) und zum
anderen das CRS für die Ausgabe des Ergebnisses angegeben wird – wenn nur das CRS für den Operator
angegeben wird, kann die Anfrage im Regelfall bearbeitet werden, das Ergebnis wird jedoch wiederum im
nativen CRS zurückgeliefert.
http://www.geoproxy.geoportal-th.de/geoproxy/services?
HTTP GET
SERVICE=WFS&VERSION=1.1.0&REQUEST=GetFeature
&TYPENAME=tlvermgeo:th_etrs89utm32_flur
&NAMESPACE=xmlns%28tlvermgeo=http://www.geoproxy.geoportal-th.de/tlvermgeo%29
&SRSNAME=EPSG:31468
&FILTER=<ogc:Filter xmlns:wfs="http://www.opengis.net/wfs"
xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc"
xmlns:tlvermgeo="http://www.geoproxy.geoportal-th.de/tlvermgeo"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/wfs
http://schemas.opengis.net/wfs/1.1.0/wfs.xsd">
<ogc:BBOX srsName="EPSG:31468">
<ogc:PropertyName>tlvermgeo:geom</ogc:PropertyName>
<gml:Envelope srsName="EPSG:31468">
<gml:coord><gml:X>4407500</gml:X><gml:Y>5639400</gml:Y></gml:coord>
<gml:coord><gml:X>4408500</gml:X><gml:Y>5640400</gml:Y></gml:coord>
</gml:Envelope></ogc:BBOX></ogc:Filter>
<?xml version="1.0" encoding="UTF-8"?>
HTTP POST
<wfs:GetFeature version="1.1.0"
xmlns:wfs="http://www.opengis.net/wfs"
xmlns:gml="http://www.opengis.net/gml"
xmlns:ogc="http://www.opengis.net/ogc"
xmlns:tlvermgeo="http://www.geoproxy.geoportal-th.de/tlvermgeo"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/wfs
http://schemas.opengis.net/wfs/1.1.0/wfs.xsd" >
<wfs:Query typeName="tlvermgeo:th_etrs89utm32_flur" srsName="EPSG:31468">
<ogc:Filter>
<ogc:BBOX srsName="EPSG:31468">
<ogc:PropertyName>tlvermgeo:geom</ogc:PropertyName>
<gml:Envelope>
<gml:pos srsDimension="2" srsName="EPSG:31468">4407500 5639400</gml:pos>
<gml:pos srsDimension="2" srsName="EPSG:31468">4408500 5640400</gml:pos>
</gml:Envelope>
</ogc:BBOX>
</ogc:Filter>
</wfs:Query>
</wfs:GetFeature>
Antwort: Informationen von 6 Features, welche innerhalb der Bounding Box liegen, werden übertragen.
Geoproxy Thüringen
Beispiele zur Nutzung des Web Feature Service
Seite 7 von 12
Variante 2 – Suche und Ausgabe über verschiedene Koordinatensysteme
Liegen die BBOX-Werte im PD83-Koordinatensystem (bspw. wenn es sich um ein älteres Projekt handelt,
dessen Koordinaten noch vor der Umstellung in das neue amtliche Lagebezugssystem gespeichert worden
sind) vor, die Ausgabe soll jedoch im System ETRS89, UTM-Koordinaten in Zone 32 erfolgen, so ist nur
der Wert für die Ausgabe zu ändern.
Bei der Verwendung des BBOX-Operators wird von einem regelmäßigen Rechteck ausgegangen, das
Koordinatensystem (SRS) sollte explizit (HTTP GET = als eigener Parameter SRSNAME, HTTP Post = als
Parameter srsName im Abschnitt wfs:Query) angegeben werden.
http://www.geoproxy.geoportal-th.de/geoproxy/services?
HTTP GET
SERVICE=WFS&VERSION=1.1.0&REQUEST=GetFeature
&TYPENAME=tlvermgeo:th_etrs89utm32_flur
&NAMESPACE=xmlns%28tlvermgeo=http://www.geoproxy.geoportal-th.de/tlvermgeo%29
&SRSNAME=EPSG:25832
&FILTER=<ogc:Filter xmlns:wfs="http://www.opengis.net/wfs"
xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc"
xmlns:tlvermgeo="http://www.geoproxy.geoportal-th.de/tlvermgeo"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/wfs
http://schemas.opengis.net/wfs/1.1.0/wfs.xsd">
<ogc:BBOX srsName="EPSG:31468">
<ogc:PropertyName>tlvermgeo:geom</ogc:PropertyName>
<gml:Envelope srsName="EPSG:31468">
<gml:coord><gml:X>4407500</gml:X><gml:Y>5639400</gml:Y></gml:coord>
<gml:coord><gml:X>4408500</gml:X><gml:Y>5640400</gml:Y></gml:coord>
</gml:Envelope></ogc:BBOX></ogc:Filter>
<?xml version="1.0" encoding="UTF-8"?>
HTTP POST
<wfs:GetFeature version="1.1.0"
xmlns:wfs="http://www.opengis.net/wfs"
xmlns:gml="http://www.opengis.net/gml"
xmlns:ogc="http://www.opengis.net/ogc"
xmlns:tlvermgeo="http://www.geoproxy.geoportal-th.de/tlvermgeo"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/wfs
http://schemas.opengis.net/wfs/1.1.0/wfs.xsd" >
<wfs:Query typeName="tlvermgeo:th_etrs89utm32_flur" srsName="EPSG:25832">
<ogc:Filter>
<ogc:BBOX srsName="EPSG:31468">
<ogc:PropertyName>tlvermgeo:geom</ogc:PropertyName>
<gml:Envelope>
<gml:pos srsDimension="2" srsName="EPSG:31468">4407500 5639400</gml:pos>
<gml:pos srsDimension="2" srsName="EPSG:31468">4408500 5640400</gml:pos>
</gml:Envelope>
</ogc:BBOX>
</ogc:Filter>
</wfs:Query>
</wfs:GetFeature>
Antwort: Informationen von 6 Features, welche innerhalb der Bounding Box liegen, werden übertragen.
Geoproxy Thüringen
6.
Beispiele zur Nutzung des Web Feature Service
Seite 8 von 12
Anfrage nach Features über räumliche Einschränkung – Spezialfall Punkt
In diesem Beispiel wird eine gefilterte Anfrage im Bezugssystem PD83 (räumliche Einschränkung auf einen
gemessenen Punkt im Stadtgebiet von Erfurt) gestellt, die Anzahl der zurück gelieferten Features nicht
begrenzt, weil im Regelfall nur eine Flur gefunden werden soll.
Variante 1 – Suche über BBOX
Da die Quelldaten als Punktkoordinaten vorliegen, der Dienst jedoch eine räumliche Ausdehnung für die
Suche erwartet, ist es ratsam, für den zweiten Wert einen Offset von jeweils +1 in der Einheit der
Genauigkeit anzugeben oder ausgehend von den Quelldaten in jede Richtung einen Offset anzuwenden.
Im Beispiel wird eine Genauigkeitsklasse im mm-Bereich angenommen.
Man kann solche Abfragen einsetzen, wenn es Ungenauigkeiten bei der Erfassung der Punktkoordinaten
gibt, bspw. durch Positionsbestimmung mittels Touchscreen-Displays im Außendienst. Es bietet sich an,
entsprechend der erreichbaren Positionierungsgenauigkeit die BBOX-Koordinaten festzulegen.
 Im konkreten Anwendungsfall wird die zugehörige Gemarkung gesucht, die sich per Gemarkungsnummer ableiten lässt.
HTTP GET
http://www.geoproxy.geoportal-th.de/geoproxy/services?
SERVICE=WFS&VERSION=1.1.0&REQUEST=GetFeature
&TYPENAME=tlvermgeo:th_etrs89utm32_flur
&SRSNAME=EPSG:31468
&NAMESPACE=xmlns%28tlvermgeo=http://www.geoproxy.geoportal-th.de/tlvermgeo%29
&FILTER=<ogc:Filter xmlns:wfs="http://www.opengis.net/wfs"
xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc"
xmlns:tlvermgeo="http://www.geoproxy.geoportal-th.de/tlvermgeo"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/wfs
http://schemas.opengis.net/wfs/1.1.0/wfs.xsd">
<ogc:BBOX srsName="EPSG:31468">
<ogc:PropertyName>tlvermgeo:geom</ogc:PropertyName>
<gml:Envelope srsName="EPSG:31468">
<gml:coord><gml:X>4432381.7</gml:X><gml:Y>5650002.1</gml:Y></gml:coord>
<gml:coord><gml:X>4432381.701</gml:X><gml:Y>5650002.101</gml:Y></gml:coord>
</gml:Envelope></ogc:BBOX></ogc:Filter>
<?xml version="1.0" encoding="UTF-8"?>
HTTP POST
<wfs:GetFeature version="1.1.0"
xmlns:wfs="http://www.opengis.net/wfs"
xmlns:gml="http://www.opengis.net/gml"
xmlns:ogc="http://www.opengis.net/ogc"
xmlns:tlvermgeo="http://www.geoproxy.geoportal-th.de/tlvermgeo"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/wfs
http://schemas.opengis.net/wfs/1.1.0/wfs.xsd">
<wfs:Query typeName="tlvermgeo:th_etrs89utm32_flur" srsName="EPSG:31468">
<ogc:Filter>
<ogc:BBOX srsName="EPSG:31468">
<ogc:PropertyName>tlvermgeo:geom</ogc:PropertyName>
<gml:Envelope>
<gml:pos srsDimension="2" srsName="EPSG:31468">4432381.7 5650002.1</gml:pos>
<gml:pos srsDimension="2" srsName="EPSG:31468">4432381.701 5650002.101</gml:pos>
</gml:Envelope>
</ogc:BBOX>
</ogc:Filter>
</wfs:Query>
</wfs:GetFeature>
Antwort: Informationen von 1 Feature, welches innerhalb der Bounding Box liegt, werden übertragen.
Geoproxy Thüringen
Beispiele zur Nutzung des Web Feature Service
Seite 9 von 12
Variante 2 – Suche über Punkt
Sofern der Dienst neben dem räumlichen Filter BBOX über weitere Operatoren (Abruf siehe unter 2.)
verfügt, dann kann die Suche auch auf den gemessenen Punkt unter Verwendung des IntersectsOperators beschränkt werden. Es ist bei der Beschreibung der Koordinaten auf die korrekte Formatierung
zu achten.
HTTP GET
http://www.geoproxy.geoportal-th.de/geoproxy/services?
SERVICE=WFS&VERSION=1.1.0&REQUEST=GetFeature
&TYPENAME=tlvermgeo:th_etrs89utm32_flur
&SRSNAME=EPSG:31468
&NAMESPACE=xmlns%28tlvermgeo=http://www.geoproxy.geoportal-th.de/tlvermgeo%29
&FILTER=<ogc:Filter xmlns:wfs="http://www.opengis.net/wfs"
xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc"
xmlns:tlvermgeo="http://www.geoproxy.geoportal-th.de/tlvermgeo"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/wfs
http://schemas.opengis.net/wfs/1.1.0/wfs.xsd">
<ogc:Intersects srsName="EPSG:31468">
<ogc:PropertyName>tlvermgeo:geom</ogc:PropertyName>
<gml:Point srsName="EPSG:31468">
<gml:coordinates>4432381.7,5650002.1</gml:coordinates></gml:Point>
</ogc:Intersects></ogc:Filter>
<?xml version="1.0" encoding="UTF-8"?>
HTTP POST
<wfs:GetFeature version="1.1.0"
xmlns:wfs="http://www.opengis.net/wfs"
xmlns:gml="http://www.opengis.net/gml"
xmlns:ogc="http://www.opengis.net/ogc"
xmlns:tlvermgeo="http://www.geoproxy.geoportal-th.de/tlvermgeo"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/wfs
http://schemas.opengis.net/wfs/1.1.0/wfs.xsd">
<wfs:Query typeName="tlvermgeo:th_etrs89utm32_flur" srsName="EPSG:31468">
<ogc:Filter>
<ogc:Intersects>
<ogc:PropertyName>tlvermgeo:geom</ogc:PropertyName>
<gml:Point srsName="EPSG:31468">
<gml:coordinates >4432381.7,5650002.1</gml:coordinates >
</gml:Point>
</ogc:Intersects>
</ogc:Filter>
</wfs:Query>
</wfs:GetFeature>
Antwort: Informationen von 1 Feature, welches mit der Punktkoordinate eine Schnittmenge bildet, werden
übertragen.
<?xml version="1.0" encoding="UTF-8"?>
-<wfs:FeatureCollection numberOfFeatures="1" timeStamp="2014-12-08T15:48:23.035Z" xsi:schemaLocation="http://www.opengis.net/wfs
http://schemas.opengis.net/wfs/1.1.0/wfs.xsd http://www.geoproxy.geoportal-th.de/tlvermgeo http://www.geoproxy.geoportalth.de/geoproxy/services?SERVICE=WFS&VERSION=1.1.0&REQUEST=DescribeFeatureType&OUTPUTFORMAT=text%2Fxml%3B+subtype%3Dgml%
2F3.1.1&TYPENAME=tlvermgeo:th_etrs89utm32_flur&NAMESPACE=xmlns(tlvermgeo=http%3A%2F%2Fwww.geoproxy.geoportal-th.de%2Ftlvermgeo)"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wfs="http://www.opengis.net/wfs">
…
<tlvermgeo:Flur_ID>0101-127</tlvermgeo:Flur_ID>
<tlvermgeo:Flur>127</tlvermgeo:Flur>
<tlvermgeo:Gemarkung_ID>101</tlvermgeo:Gemarkung_ID>
<tlvermgeo:Gemarkung>Erfurt-Mitte</tlvermgeo:Gemarkung>
<tlvermgeo:Gemeinde_ID>51000</tlvermgeo:Gemeinde_ID>
<tlvermgeo:Gemeinde>Erfurt</tlvermgeo:Gemeinde>
…
</tlvermgeo:th_etrs89utm32_flur>
</gml:featureMember>
</wfs:FeatureCollection>
Geoproxy Thüringen
7.
Beispiele zur Nutzung des Web Feature Service
Seite 10 von 12
Anfrage nach Features über räumliche Einschränkung – Spezialfall Polygon
Wenn das abzufragende Gebiet kein regelmäßiges Rechteck sondern ein unregelmäßiges Polygon
darstellt, dann kann anstelle des BBOX-Operators (siehe 5.) eine Verschneidung mittels Polygon
vorgenommen werden, sofern der Dienst neben dem räumlichen Filter BBOX über weitere Operatoren
(Abruf siehe unter 2.) verfügt.
Es ist bei der Beschreibung der Koordinaten innerhalb des Elementes „LinearRing“ auf die korrekte
Formatierung zu achten, die Anfangs- und Endkoordinaten müssen identisch sein.
HTTP GET
http://www.geoproxy.geoportal-th.de/geoproxy/services?
SERVICE=WFS&VERSION=1.1.0&REQUEST=GetFeature
&TYPENAME=tlvermgeo:th_etrs89utm32_flur
&SRSNAME=EPSG:31468
&NAMESPACE=xmlns%28tlvermgeo=http://www.geoproxy.geoportal-th.de/tlvermgeo%29
&FILTER=<ogc:Filter xmlns:wfs="http://www.opengis.net/wfs"
xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc"
xmlns:tlvermgeo="http://www.geoproxy.geoportal-th.de/tlvermgeo"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/wfs
http://schemas.opengis.net/wfs/1.1.0/wfs.xsd"><ogc:Intersects>
<ogc:PropertyName>tlvermgeo:geom</ogc:PropertyName>
<gml:Polygon srsName="EPSG:31468"><gml:outerBoundaryIs><gml:LinearRing>
<gml:coordinates decimal="." cs="," ts=" ">4407500,5639400 4407300,5639800
4407900,5639900 4407900,5639600 4407500,5639600 4407500,5639400
</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs>
</gml:Polygon></ogc:Intersects></ogc:Filter>
<?xml version="1.0" encoding="UTF-8"?>
HTTP POST
<wfs:GetFeature version="1.1.0"
xmlns:wfs="http://www.opengis.net/wfs"
xmlns:gml="http://www.opengis.net/gml"
xmlns:ogc="http://www.opengis.net/ogc"
xmlns:tlvermgeo="http://www.geoproxy.geoportal-th.de/tlvermgeo"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/wfs
http://schemas.opengis.net/wfs/1.1.0/wfs.xsd">
<wfs:Query typeName="tlvermgeo:th_etrs89utm32_flur" srsName="EPSG:31468">
<ogc:Filter>
<ogc:Intersects>
<ogc:PropertyName>tlvermgeo:geom</ogc:PropertyName>
<gml:Polygon srsName="EPSG:31468">
<gml:outerBoundaryIs>
<gml:LinearRing>
<gml:coordinates>4407500,5639400 4407300,5639800 4407900,5639900
4407900,5639600 4407500,5639600 4407500,5639400</gml:coordinates>
</gml:LinearRing>
</gml:outerBoundaryIs>
</gml:Polygon>
</ogc:Intersects>
</ogc:Filter>
</wfs:Query>
</wfs:GetFeature>
Antwort: Informationen von 3 Features, welche innerhalb des Polygons liegen, werden übertragen.
Geoproxy Thüringen
8.
Beispiele zur Nutzung des Web Feature Service
Seite 11 von 12
Anfragen über Attributinhalte
Zur Suche werden hier keine räumliche Operatoren sondern Vergleichsoperatoren eingesetzt, diese sind in
den Eigenschaften des Dienstes (Abruf siehe unter 2.) angegeben. Diese können auf die Attribute des
jeweiligen Feature Types (Abruf siehe unter 3.) angewendet werden.
In der Regel liegen dem Nutzer weitere Angaben wie bspw. ein Gemarkungsname oder eine
Gemarkungsnummer. Im Beispiel werden Features über den Gemarkungsname Erfurt-Mitte gesucht.
HTTP GET
http://www.geoproxy.geoportal-th.de/geoproxy/services?
SERVICE=WFS&VERSION=1.1.0&REQUEST=GetFeature
&TYPENAME=tlvermgeo:th_etrs89utm32_flur
&NAMESPACE=xmlns%28tlvermgeo=http://www.geoproxy.geoportal-th.de/tlvermgeo%29
&FILTER=<ogc:Filter xmlns:wfs="http://www.opengis.net/wfs"
xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc"
xmlns:tlvermgeo="http://www.geoproxy.geoportal-th.de/tlvermgeo"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/wfs
http://schemas.opengis.net/wfs/1.1.0/wfs.xsd">
<ogc:PropertyIsEqualTo><ogc:PropertyName>
tlvermgeo:Gemarkung</ogc:PropertyName>
<ogc:Literal>Erfurt-Mitte</ogc:Literal>
</ogc:PropertyIsEqualTo></ogc:Filter>
<?xml version="1.0" encoding="UTF-8"?>
<wfs:GetFeature version="1.1.0"
xmlns:wfs="http://www.opengis.net/wfs"
xmlns:gml="http://www.opengis.net/gml"
xmlns:ogc="http://www.opengis.net/ogc"
xmlns:tlvermgeo="http://www.geoproxy.geoportal-th.de/tlvermgeo"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/wfs
http://schemas.opengis.net/wfs/1.1.0/wfs.xsd">
<wfs:Query typeName="tlvermgeo:th_etrs89utm32_flur">
<ogc:Filter>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>tlvermgeo:Gemarkung</ogc:PropertyName>
<ogc:Literal>Erfurt-Mitte</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
</wfs:Query>
</wfs:GetFeature>
Antwort: Informationen von 45 Features werden übertragen
HTTP POST
Geoproxy Thüringen
9.
Beispiele zur Nutzung des Web Feature Service
Seite 12 von 12
Anhang – Konvertierung von Sonderzeichen
Bei HTTP-Get Requests werden einige Sonderzeichen benötigt, im Zweifelsfall sind die folgenden
Elemente aus den Beispielen wie folgt in den URL zu ersetzen:
Zeichen URL-Kodierung
%20
"
%22
(
%28
)
%29
<
%3C
>
%3E
Leerzeichen
Bein Anfragen über Attributinhalte kann es vorkommen, dass besondere Zeichen wie beispielsweise
Umlaute benötigt werden. Mit UTF-8 sollte die direkte Eingabe von Sonderzeichen möglich sein, dennoch
kann es zu Fehlermeldungen des Dienstes kommen. In solchen Fällen sind die Sonderzeichen durch die
entsprechende Kodierung zu ersetzen.
Im Beispiel sollen FeatureTypes angefragt werden, deren geographischer Name mit „Mü“ beginnt, dazu
wird der Like-Operator (Abruf siehe unter 2.) verwendet. Funktioniert die Suche über das Kriterium „Mü“
nicht, so ist anstelle des Umlautes „ü“ der numerische Wert &#252; zu verwenden.
<ogc:Filter>
<ogc:PropertyIsLike wildCard='*' singleChar='.' escape='!'>
<ogc:PropertyName>tlvermgeo:geographicName</ogc:PropertyName>
<ogc:Literal>M&#252;*</ogc:Literal>
</ogc:PropertyIsLike>
</ogc:Filter>
Nachfolgende Tabelle gibt die Kodierung für im deutschen Sprachraum übliche Sonderzeichen wieder.
Bitte beachten: unter Umständen können bei bestimmten Attributinhalten wie bspw. Straßennamen die
Akut- bzw. Gravis-Zeichen durch einfache Vokalzeichen ersetzt sein, Beispiel: é  e.
Kategorie
Zeichen Numerisch
Beschreibung
Alphabet, latein, Akut
á
kleines lateinisches a mit Akut
&#225;
Alphabet, latein, Akut
é
kleines lateinisches e mit Akut
&#233;
Alphabet, latein, Akut
í
kleines lateinisches i mit Akut
&#237;
Alphabet, latein, Akut
ó
kleines lateinisches o mit Akut
&#243;
Alphabet, latein, Gravis
à
kleines lateinisches a mit Gravis
&#224;
Alphabet, latein, Gravis
è
kleines lateinisches e mit Gravis
&#232;
Alphabet, latein, Gravis
ì
kleines lateinisches i mit Gravis
&#236;
Alphabet, latein, Gravis
ò
kleines lateinisches o mit Gravis
&#242;
Alphabet, latein, Gravis
ù
kleines lateinisches u mit Gravis
&#249;
Alphabet, latein
ß
kleines lateinisches ß = ess-zed
&#223;
Grafik
"
Anführungszeichen
&#34;
Typo
""
nicht brechendes Leerzeichen
&#160;
Typo
"-"
weiches Trennzeichen
&#173;
Typo
′
einfaches Anführungszeichen = Minuten = Fuss
&#8242;
Typo
″
doppeltes Anführungszeichen = Sekunden = Inch
&#8243;
Typo
&
Ampersand
&#38;
Typo
%
Prozent
&#37;
Typo
©
Copyright
&#169;
Umlaut
Ä
Ä
&#196;
Umlaut
Ö
Ö
&#214;
Umlaut
Ü
Ü
&#220;
Umlaut
ä
ä
&#228;
Umlaut
ö
ö
&#246;
Umlaut
ü
ü
&#252;
Währung
€
Euro
&#8364;