Estilos CSS en GeoServer

cssEl módulo CSS para GeoServer añade un editor de estilos alternativo a GeoServer que utiliza un lenguaje derivado de CSS en lugar de SLD. Te será muy útil si estás familiarizado con el diseño web con CSS.

Los estilos CSS (Cascading Style Sheets) se convierten internamente en SLD, siendo estos últimos los utilizados de forma normal por GeoServer. La sintaxis CSS se duplica desde un estilo SVG (Scalable Vector Graphics) cuando es posible, pero extendido para evitar la pérdida de las opciones que ofrece el SLD. Por ejemplo se proporcionan utilidades para extraer los atributos de los objetos geográficos y usarlos como etiquetas, el tamaño de los símbolos puntuales de acuerdo a los valores de los datos, etc.

Para utilizar CSS en GeoServer es necesario instalar la extensión disponible desde la página de descargas de GeoServer.

  • Nos descargaremos el archivo acorde a nuestra versión de GeoServer.
  • Abrimos el archivo zip para ver los archivos .jar
  • Extraemos el contenido del archivo zip en el directorio de GeoServer: \geoserver\WEB-INF\lib.

Dando estilo con CSS

La extensión CSS añade una página a la interfaz gráfica de GeoServer (solo visible para administradores registrados):

estilos CSS

Una vez en la página de Estilos CSS, podemos visualizar cualquiera de las capas y estilos que tengamos en GeoServer seleccionándolos.

Creando un estilo en una capa de puntos

El archivo SLD predeterminado para la capa de lugares se ve así:

<?xml version=»1.0″ encoding=»UTF-8″?>
<sld:UserStyle xmlns=»http://www.opengis.net/sld» xmlns:sld=»http://www.opengis.net/sld» xmlns:ogc=»http://www.opengis.net/ogc» xmlns:gml=»http://www.opengis.net/gml»>
<sld:Name>Default Styler</sld:Name>
<sld:FeatureTypeStyle>
<sld:Name>name</sld:Name>
<sld:Rule>
<sld:PointSymbolizer>
<sld:Graphic>
<sld:Mark>
<sld:Fill>
<sld:CssParameter name=»fill»>#ff0000</sld:CssParameter>
</sld:Fill>
</sld:Mark>
<sld:Size>6</sld:Size>
</sld:Graphic>
</sld:PointSymbolizer>
</sld:Rule>
</sld:FeatureTypeStyle>
</sld:UserStyle>

Nada menos que 19 líneas. Ahora, vamos a escribir en CSS la misma simbología en menos de 10 líneas de código.

En primer lugar, hacemos clic sobre el enlace Create a new style and preview with this layer para iniciar un nuevo estilo:

crea estilo css

Y le damos un nombre:

create a new style

Hacemos clic en Create para comenzar. El código que se crea por defecto es el siguiente:

La sintaxis de CSS

La sintaxis de CSS es distinta de la de HTML. El formato general se ve así:

Un selector  identifica una parte de los datos de estilo. En este caso, el selector es *, lo que indica que todos los datos deben utilizar las propiedades de estilo.

Las propiedades van dentro de llaves ({}) que especifican cómo debe ser el estilo de los elementos afectados. Las propiedades consisten en pares de nombre / valor separados por dos puntos (:).

Un valor es una posible configuración de una propiedad. fill puede ser gris, rojo, azul, negro o cualquier otro color.

Símbolos

El módulo CSS de GeoServer contiene una colección de símbolos predefinidos que podemos utilizar y combinar para crear marcas simples, trazos y patrones de relleno sin necesidad de un programa de edición de imágenes. Podemos acceder a estos símbolos a través de la función CSS symbol ().

Por ejemplo, el símbolo del círculo (circle) hace que sea fácil crear un sencillo punto sobre una capa de puntos:

Sin embargo, hay otros símbolos disponibles, como circle, square, triangle, arrow, cross, star

Selectores de símbolos

Los Símbolos ofrecen algunas opciones de estilo adicionales. Para especificar estas propiedades de estilo, sólo tenemos que añadir otra regla con un selector especial. Hay varios selectores «pseudoclases» que se utilizan para selectores de estilo.

Volviendo a nuestra capa de puntos vamos a escribir:

Hay dos reglas en este CSS, la primera de ellas (líneas 1-4) es para todos los elementos, y les pide que se representen con una marca cuadrada y de 6 píxeles de ancho.

La segunda regla usa un selector de símbolos :mark, que selecciona todas las marcas en las normas anteriores, y permite especificar cómo rellenar el contenido del cuadrado, en este caso, con un sólido relleno rojo.

Proporcionando metadatos

Una característica que aparece en SLD y que también tiene análogo en CSS es la capacidad para proporcionar los metadatos de estilos y reglas de estilo. Podemos añadir comentarios antes de nuestras reglas incluyendo líneas que comiencen con ‘@title‘ y ‘@abstract’.

Pincha en el botón Submit para enviar el código al servidor.

resultadoEn la parte inferior vemos cuatro pestañas:

  • Generated SLD: es la conversión del CSS a SLD.
  • Map: Aquí podemos previsualizar la capa con el estilo.
  • Data: Una lista de los atributos de la capa.
  • CSS Reference: la página de ayuda.

CSS Cookbook

El CSS Cookbook es una colección de recetas CSS  para la creación de diversos tipos de estilos de mapa. Siempre que sea posible, cada ejemplo está diseñado para mostrar un único elemento CSS para que el código se pueda copiar de los ejemplos y adaptarlo en nuestros estilos CSS. La mayoría de los ejemplos también existen en el SLD Cookbook, para hacer una comparación inmediata entre las dos sintaxis.

Para más información puedes consultar la documentación de GeoServer.

Si quieres aprender a trabajar con estilos SLD y CSS en GeoServer apúntate a nuestro curso online Desarrollo de aplicaciones webmapping.

Let’s connect!

Date de alta en nuestro newsletter
y recibe este ebook gratuito

Y una vez al mes recibirás las últimas novedades del sector GIS y de nuestros cursos