El Servicio de Descarga Web Feature Service (WFS) define las operaciones web para la consulta, acceso y edición de los «objetos geográficos» (Features) vectoriales, como por ejemplo una red de carreteras o los límites de una parcela en una región.
Los objetos geográficos que se publican en un WFS se pueden consultar en el fichero de capacidades. Por ejemplo en el WFS de Nombres Geográficos el objeto geográfico sería «Lugar nombrado» (gn:NamedPlace): GetCapabilities Nombres Geográficos
gn:NamedPlace
En el fichero de capacidades también se pueden consultar las operaciones disponibles para cada objeto geográfico. Una de las operaciones básicas es GetFeature, que devuelve un objeto geográfico, por ejemplo, GetFeature NamedPlace
Para mejorar las consultas a los objetos geográficos, el O.A. Centro Nacional de Información Geográfica (CNIG) ha incorporado nuevas storedQueries, que permiten realizar una consulta mediante el nombre o denominación del objeto geográfico.
Las storedQueries son consultas predefinidas en el servidor que filtran la información según parámetros ya establecidos, como obtener los topónimos de un municipio, los portales de una calle o los ríos que atraviesan un municipio.
Para reutilizar estas consultas solo es necesario realizar una petición indicando el identificador (StoredQuery_ID) y los parámetros requeridos.
Para conocer las storedQueries definidas en un WFS basta con ejecutar la operación ListStoredQueries. Por ejemplo, para el WFS de Hidrografía la operación a ejecutar sería: ListStoredQueries Hidrografía
Para consultar los parámetros necesarios de cada storyQuery se utiliza la operación DescribeStoredQueries. Para el WFS del ejemplo anterior sería: DescribeStoredQueries Hidrografía
Por ejemplo, la storedQuery que permite devolver un objeto geográfico mediante un identificador se denomina «GetFeatureById», y su único parámetro es «ID», donde se define el identificador del objeto geográfico que se quiere obtener.
A continuación, se describen las diferentes storedQueries que se han definido para los WFS de direcciones postales, hidrografía y redes de transportes, así como la forma de realizar las correspondientes peticiones. Por último, se explica cómo efectuar estas consultas desde QGIS.
En el WFS de direcciones postales se han implementado varias storedQueries para filtrar los datos espaciales y localizarlos de forma más sencilla.
Como ya hemos indicado, para consultar las storedQueries disponibles en el WFS de direcciones postales debemos ejecutar la opeación ListStoredQueriesy, para conocer su descripción y los parámetros requeridos, la operación DescribeStoredQueries.
DescribeStoredQueries WFS de direcciones
Vamos a realizar el ejemplo de obtener las direcciones postales a partir de nombre de vía y municipio partiendo de los parámetros: nameOfTheAdminUnitName (municipio), nameOfTheThoroughfareName (vía pública) y srsName (sistema de referencia), tal y como se describen en la operación DescribeStoredQuery.
nameOfTheAdminUnitName
nameOfTheThoroughfareName
srsName
La petición para conocer los portales del «Paseo Castellana» en el municipio de Madrid, en el sistema de referencia ETR89 y con la proyección UTM 30 (EPSG:25830), sería la siguiente:
https://www.cartociudad.es/wfs-inspire/direcciones? SERVICE=WFS& REQUEST=GetFeature& VERSION=2.0.0& STOREDQUERY_ID= urn:x-inspire:StoredQueries:AddressByThoroughfareNameAndAdminUnitName& nameOfTheAdminUnitName=Madrid& nameOfTheThoroughfareName=PASEO CASTELLANA& srsName=EPSG:25830
El resultado es un fichero GML con los atributos del objeto geográfico conforme a la Especificación de Datos de Direcciones de la Comisión Europea. Si se guarda como XML se puede cargar en QGIS para visualizar los objetos geográficos y consultar sus atributos pulsando sobre ellos.
Paseo Castellana
En este otro ejemplo vamos a obtener los portales de la Rua Nova en Lugo:
Rua Nova, Lugo
En el caso de las redes de transporte, si consultamos las storedQueries implementadas mediante la operación ListStoredQueries, podemos comprobar que se ha definido la consulta sequenceByName sobre el objeto geográfico tn-ro:RoadLink. Esta consulta devuelve el conjunto ordenado de los tramos que componen un vial, representando una ruta continua de la red de transporte, ya sea de una carretera o de una línea de ferrocarril, a partir del parámetro Name, tal y como se describe en la operación DescribeStoredQueries.
tn-ro:RoadLink
Name
Utilizando esta consulta vamos a realizar un ejemplo de obtención de la autovía AP-9.
https://servicios.idee.es/wfs-inspire/transportes? SERVICE=WFS& REQUEST=GetFeature& VERSION=2.0.0& STOREDQUERY_ID=idee:transport:StoredQueries:sequenceByName& nombre=AP-9
Para obtener las geometrías, es necesario resolver las referencias a otros tipos de objetos geográficos (featureType) del servicio. Esto se consigue añadiendo el parámetro RESOLVEDEPTH=1 a la petición, lo que permite recuperar la información asociada de los distintos tipos de objetos geográficos (featureTypes), incluidas sus geometrías.
RESOLVEDEPTH=1
De este modo, se obtienen los siguientes objetos:
Enlace de carretera (tn-ro:RoadLink): objeto espacial lineal que describe la geometría y la conectividad de una red viaria entre dos puntos de la red.
Hito (tn:MarkerPost): indicador situado a lo largo de una ruta en una red de transporte, normalmente a intervalos regulares, que señala la distancia desde el inicio de la ruta o desde otro punto de referencia hasta la ubicación del hito.
Vamos a ver un ejemplo incluyendo este parámetro para la carretera «PO-531»:
https://servicios.idee.es/wfs-inspire/transportes? SERVICE=WFS& VERSION=2.0.0& REQUEST=GetFeature& StoredQuery_ID=idee:transport:StoredQueries:sequenceByName& nombre=PO-531& RESOLVEDEPTH=1
Visualización del gml de PO-531
Para el WFS de hidrografía se ha definido una storedQuery que devuelve los objetos geográficos (featureType) del esquema de aplicación de Hidrografía Física (Hydro – Physical Waters), a partir de su nombre (Name) y sistema de referencia (NsrsName).
NsrsName
Como ejemplo, se define una petición para obtener las geometrías del río Ebro en el sistema de referencia ETRS 89 en latitud y longitud (EPSG:4258).
http://servicios.idee.es/wfs-inspire/hidrografia? SERVICE=WFS& VERSION=2.0.0& REQUEST=GetFeature& StoredQuery_ID=idee:hidrografia:StoredQueries:GetByName& name=*RÍO EBRO*& srsName=http://www.opengis.net/def/crs/EPSG/0/4258
Plugin WFS 2.0 client. Consulta RÍO EBRO
El resultado es un fichero XML, con estructura GML, que contiene los distintos tramos del Río Ebro. En la petición, el nombre RÍO EBRO se escribe entre asteriscos, lo que permite que la consulta devuelva todos los objetos geográficos cuyo nombre contenga «Río Ebro». De este modo, se incluyen también los tramos con el nombre geográfico «L’Ebre/Río Ebro», donde la denominación aparece en los idiomas oficiales de la comunidad autónoma.
Para realizar consultas storedQueries en QGIS es necesario utilizar el plugin WFS 2.0 Client. A continuación, se explica paso a paso como utilizarlo:
Plugin WFS 2.0 client
Plugin WFS 2.0 client. Consulta RUA NOVA, LUGO
Para el caso de redes de transportes para obtener las geometrías es necesario definir el parámetro RESOLVEDEPTH, cuyo valor por defecto es cero. En el plugin de QGIS este parámetro puede configurar abriendo la ventana de configuración de WFS 2.0 Client. Como se muestra en la imagen, se accede desde el menú Web → WFS 2.0 Client → Config.
Menú WFS 2.0 client
Al hacer clic en Config se abre la siguiente ventana, donde se despliegan los valores que se pueden aplicar al parámetro RESOLVEDEPTH (WFS). Se debe seleccionar el valor 1 y hacer clic en Save para guardar los cambios. A partir de ese momento, al volver a abrir el plugin, todas las operaciones incluirán automáticamente este parámetro.
RESOLVEDEPTH
Configuración WFS 2.0 client
A continuación, se muestra el resultado de la consulta para obtener la M-40 de Madrid.
Plugin WFS 2.0 client. Consulta M-40
Las storedQueries simplifican el acceso a los datos geográficos, permitiendo a los proveedores preconfigurar accesos a datos específicos y creando puntos sencillos de acceso a conjuntos de datos complejos.
Publicado por Elena Lago Falcon.