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 ü zu verwenden. <ogc:Filter> <ogc:PropertyIsLike wildCard='*' singleChar='.' escape='!'> <ogc:PropertyName>tlvermgeo:geographicName</ogc:PropertyName> <ogc:Literal>Mü*</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 á Alphabet, latein, Akut é kleines lateinisches e mit Akut é Alphabet, latein, Akut í kleines lateinisches i mit Akut í Alphabet, latein, Akut ó kleines lateinisches o mit Akut ó Alphabet, latein, Gravis à kleines lateinisches a mit Gravis à Alphabet, latein, Gravis è kleines lateinisches e mit Gravis è Alphabet, latein, Gravis ì kleines lateinisches i mit Gravis ì Alphabet, latein, Gravis ò kleines lateinisches o mit Gravis ò Alphabet, latein, Gravis ù kleines lateinisches u mit Gravis ù Alphabet, latein ß kleines lateinisches ß = ess-zed ß Grafik " Anführungszeichen " Typo "" nicht brechendes Leerzeichen   Typo "-" weiches Trennzeichen ­ Typo ′ einfaches Anführungszeichen = Minuten = Fuss ′ Typo ″ doppeltes Anführungszeichen = Sekunden = Inch ″ Typo & Ampersand & Typo % Prozent % Typo © Copyright © Umlaut Ä Ä Ä Umlaut Ö Ö Ö Umlaut Ü Ü Ü Umlaut ä ä ä Umlaut ö ö ö Umlaut ü ü ü Währung € Euro €
© Copyright 2024 ExpyDoc