El servicio de catálogo para la web (CSW) es un estándar del Open Geospatial Consortium (OGC), que se utiliza para publicar y buscar datos geoespaciales y metadatos relacionados en Internet. Describe servicios geoespaciales como Web Map Service (WMS), Web Map Tile Service (WMTS), etc. Dicho de otro modo, un servicio de catálogo nos permite localizar datos en la web y ver los metadatos de un servicio.
Sobre la importancia de los metadatos ya hemos tratado en ocasiones anteriores en este blog. Ahora vamos a centrarnos en cómo crear un servicio CSW en Geoserver y cómo podemos utilizarlo en MapStore.
Instalar la extensión CSW en Geoserver
GeoServer es un servidor de código abierto escrito en Java que permite a los usuarios compartir y editar datos geoespaciales.
GeoServer implementa los protocolos estándares open web que establece el Open Geospatial Consortium (OGC). Con Geoserver podemos crear servicios como Web Map Service (WMS), Web Feature Service (WFS) o Web Coverage Service(WCS). También permite crear servicios CSW aunque para esto es necesario instalar una extensión. Necesitamos por tanto, descargar el complemento desde la página de descargas de Geoserver.
Los archivos .jar descargados debemos pegarlos en la carpeta WEB-INF/lib de nuestro servidor GeoServer.
Después de realizar esta operación y reiniciar GeoServer, abrimos la aplicación web de GeoServer y tendremos disponible el servicio CSW:
Si hacemos clic sobre el Servicio de Catálogo para la Web nos muestra sus características:
Operaciones en un servicio CSW
Como hemos comentado, CSW es un estándar de OGC y como tal, tiene una serie de operaciones definidas. Las operaciones CSW están dirigidas a obtener, localizar y publicar metadatos. Las consultas posibles son:
- GetCapabilities.
- DescribeRecord.
- GetDomain.
- GetRecords.
- GetRecordById.
- Harvest.
- Transactión.
Podemos establecer una petición GetCapabilities al servicio que hemos creado en GeoServer, con una petición como la siguiente:
http://localhost:8080/geoserver/csw?REQUEST=GetCapabilities&SERVICE=CSW&Language=spa
Como resultado obtendremos un archivo XML con la características del servicio CSW.
Una consulta DescribeRecord toma la siguiente forma:
http://localhost:8080/geoserver/csw?service=CSW&version=2.0.2&request=DescribeRecord&&outputFormat=application/xml
Como antes la petición nos devuelve un documento XML. DescribeRecord permite realizar búsquedas de elementos del servicio de catálogo.
Catálogo de MapStore
MapStore es una herramienta WebGIS de código abierto desarrollada por GeoSolutions para crear, gestionar y compartir mapas. Dispone de una herramienta denominada Catálogo, que nos permite conectar con servicios CSW, WMS, WMTS, TMS y WFS.
MapStore está perfectamente integrada con GeoServer, por lo tanto los servicios de catálogo que implementamos antes, instalando la extensión CSW de GeoServer podemos utilizarlos ahora en MapStore.
En cuanto a metadatos, MapStore solo admite los esquemas de metadatos Dublin Core. El perfil de metadatos ISO no es compatible :(.
En un artículo anterior vimos como iniciarnos en MapStore. En esta ocasión crearemos un nuevo mapa en MapStore y en el menú elegiremos la opción Catálogo:
Se nos abrirá una nueva ventana donde elegiremos el tipo de servicio: CSW y asignaremos un título. A continuación, debemos indicar la url del servicio. Como lo tenemos alojado en un servidor GeoServer en local, la url es: http://localhost:8080/geoserver/csw
Una vez guardado, podemos acceder a los servicios CSW.
La herramienta del catálogo de MapStore también nos permite configurar algunos aspectos del servicio CWS: en ajustes avanzados podemos configurar los metadatos que deseamos que se muestren al buscar la capa. Para hacer esto procedemos en dos pasos:
1.- Activamos la opción Mostrar plantilla de metadatos:
2.- Seleccionamos los datos que deseamos ver. Escribimos el dato con el formato ${title}. La documentación de MapStore nos proporciona una lista de los datos a mostrar.
En el ejemplo anterior consultamos los metadatos:
- Title (título).
- Description (resumen).
- Creator (proveedor). Entidad productora del contenido.
- boundingBox (limites). Coordenadas geográficas del área de interés.
Guardamos los cambios y ahora al buscar la nueva capa nos muestra los datos indicados (siempre que existan).
En la vista anterior vemos los metadatos de una de las capas del servicio que nos ofrece MapStore.
Si quieres aprender a crear mapas web utilizando GeoServer y MapStore, inscríbete ya en nuestro curso online desarrollo de aplicaciones webmapping.
Tutor del curso online de Análisis GeoEspacial con Python y de los cursos online de webmapping. Echa un vistazo a todos nuestros cursos de SIG online.