WFS
El WFS (Web Feature Service) es una especificación que sirve para lanzar consultas sobre objetos geográficos.
Los WFS implementan también la especificación OGC FILTER encoding que permite dotar a WFS de un gran potencial ya que le permite realizar tanto consultas alfanuméricas y espaciales.
WFS básico permite hacer consultas y recuperación de elementos geográficos. Por el contrario WFS-T (Web Feature Service Transactional) permite además la creación, eliminación y actualización de estos elementos geográficos del mapa.
Para realizar estas operaciones se utiliza el lenguaje GML (Geography Markup Language) que deriva del XML, que es el estándar a través del que se transmiten las órdenes WFS. el GML También es el formato de retorno de las consultas.
Operadores espaciales | Operadores lógicos |
---|---|
BBOX | LessThan |
Intersects | LessThanEqualTo |
Within | GreaterThanEqualTo |
Beyond | NotEqualTo |
Equals | Like |
Disjoint | GreaterThan |
Touches | EqualTo |
Crosses | Between |
Contains | |
Overlaps |
Se puede ver la especificación en https://www.ogc.org/standards/wfs
Tipos de peticiones WFS
GetCapabilities
Nos permite descubrir cuales son las capacidades del servidor. Como respuesta va a obtener un archivo en formato xml dónde podremos saber cuales son las características del servicio, las versiones de WFS soportadas por el servidor, las operaciones que soporta, cual es su sistema de referencia, sus coordenadas y metadatos de las capas de información que contiene.
Parámetros del GetCapabilities
Parámetro | Obligatoriedad | Descripción |
---|---|---|
VERSION | Obligatorio | Versión de la especificación OGC (1.0.0, 1.1.0, 1.1.3, 2.0, 2.0.2) |
SERVICE | Obligatorio | Tipo de servicio al que va dirigida la petición (WFS) |
REQUEST | Obligatorio | Nombre de la operación (GetCapabilities) |
DescribeFeatureType
Devuelve la descripción de los tipos de objetos geográficos (XML schema de los feature types) que el servicio puede ofrecer. El servidor devuelve como respuesta un archivo XML. En la descripción del tipo de objeto geográfico se indica cómo hay que codificar los objetos geográficos para enviarlos como datos de entrada en operaciones de inserción, actualización o sustitución, y cómo se codifican cuando son datos de salida (en las respuestas de las operaciones GetPropertyValue, GetFeature o GetFeatureWithLock). Es una operación obligatoria.
Parámetros del DescribeFeatureType
Parámetro | Obligatoriedad | Descripción |
---|---|---|
VERSION | Obligatorio | Versión de la especificación OGC (1.0.0, 1.1.0, 1.1.1, 1.3.0) |
SERVICE | Obligatorio | Tipo de servicio al que va dirigida la petición (WFS) |
REQUEST | Obligatorio | Nombre de la operación (DescribeFeatureType) |
TYPENAME | Opcional | Lista los nombres de los tipos de objeto geográfico que se van a describir, separados por comas. Si no se indica ninguno, devuelve la descripción de todos los tipos. |
OUTPUTFORMAT | Opcional | Formato de salida para describir los tipos de objetos. Por defecto GML3.2 (text/xml;subt ype=gml/3.2) |
GetFeature
Esta operación devuelve una selección de objetos geográficos en formato GML. Además, debe ser posible realizar un filtro en función de sus propiedades para obtener los objetos geográficos que desea y de realizar tanto consultas espaciales como no espaciales. Es una operación obligatoria.
Para definir el tipo de objeto geográfico a consultar, qué propiedades obtener y las restricciones a aplicar se utilizan el elemento Query
Para ver más operaciones y ejemplos https://www.idee.es/resources/documentos/RD_wfs_v2_0.pdf
Parámetros del GetFeature
Parámetro | Obligatoriedad | Descripción |
---|---|---|
VERSION | Obligatorio | Versión de la especificación OGC (1.0.0, 1.1.0, 1.1.1, 1.3.0) |
SERVICE | Obligatorio | Tipo de servicio al que va dirigida la petición (WFS) |
REQUEST | Obligatorio | Nombre de la operación (GetFeature) |
TYPENAME | Obligatorio | Lista los nombres de los tipos de objeto geográfico que se van a describir, separados por comas. (Excepto cuando el parámetro RESOURCE_ID es especificado) |
RESOURCEID | Opcional | Lista los identificadores únicos de los objetos geográficos que se quieren obtener. Mutuamente excluyente con FILTER y BBOX. |
FILTER | Opcional | Describe un conjunto de características sobre las que operar. Se debe establecer un filtro por cada tipo de objeto geográfico listado en el parámetro TYPENAME |
BBOX | Opcional | Solicitud mediante una bounding box (rectángulo envolvente). Mutuamente excluyente con RESOURCEID y FILTER. |
SORTBY | Opcional | Indica los nombres de las propiedades cuyos valores se van a utilizar para ordenar el resultado de la consulta. Se puede indicar si el orden es ascendente o descendente, valor ASC o DESC (Valor por defecto: orden descendente DESC). Ejemplo: SORTBY=Apellido ASC,Nota DESC |
FILTER_LANGUAGE | Opcional | Indica el lenguaje que se emplea para codificar la expresión (valor de FILTER). Valor por defecto urn:ogc:def:queryLanguage:OGC-FES:Filter. |
SRSNAME | Opcional | Sistema de referencia que debe aplicarse en la geometría de los objetos geográficos resultantes de la petición. Si no se indica, el servicio devuelve las geometrías en el sistema que posea por defecto. El servidor debe ser capaz de transformar las geometrías en los distintos sistemas de referencia que soporta. |
Ejemplos:
Solicitud para obtener todos los vértices geodésicos entre los paralelos 38 y 39 entre las latitudes 0 y 2 (parámetro BBOX) de la Red de Orden Inferior (parámetro typeName) del servicio de redes geodésicas del Instituto Geográfico Nacional. Los resultados los pedimos en proyección UTM huso 30 (parámetro srsNAME) y en el formato XML (parámetro outputFormat)
Solicitud del objeto geográfico denominado “Teide” del Nomenclátor Geográfico Básico de España usando el parámetro FILTER