Geoserver avanzado: el teselado (puesta en práctica)

En el artículo anterior (Geoserver avanzado: las teselas (principios)) vimos los diferentes conceptos para el teselado de mapas.

En este artículo veremos cómo implementar estas funciones en Geoserver.

Para administrar el teselado, Geoserver usa un módulo externo llamado GeoWebCache.

¿Qué es GeoWebCache?

Los mapas son, generalmente, estáticos. Debido a que la mayoría de los servidores de mapas utilizan el servicio  WMS (Web Map Service) cada vez que se solicita un mapa, los tiempos de procesamiento pueden ser importantes.  GeoWebCache optimiza este procedimiento guardando en cache imágenes del mapa (las teselas) y suministrándolas directamente a medida que son solicitadas. GeoWebCache actúa como un proxy entre el cliente (como OpenLayers o Google Maps) y el servidor (como Geoserver o todo otro servidor compatible WMS).

A medida que los mapas y las teselas son solicitados,  GeoWebCache intercepta estos pedidos y, si están guardadas en el cache, suministra inmediatamente las teselas. Si por el contrario no están guardadas en el cache, solicita al servidor que las elabore. Así, una vez que las teselas han sido generadas en el cache, la velocidad de respuesta aumenta considerablemente, y , el cliente recibe el mapa mucho mas rápido.

En la imagen anterior, la máquina GeoWebCache representa el depósito de las teselas. Idealmente, la mayoría de las solicitudes son procesadas a partir de este depósito sin necesidad de consultar el servidor WMS, razón por la cual la flecha hacia los clientes es mucho más grande.  GeoWebCache puede contestar a centenas o miles de solicitudes por segundo.

GeoWebCache puede ser usadoincluso, si los mapas no son totalmente estáticos, ya que permite el manejo de la caducidad selectiva de las teselas. Así, los datos contenidos en las teselas en cache están siempre actualizados. En este tipo de configuración,  GeoWebCache actúa como un acelerador polivalente para el suministro del mapa.

Integración con Geoserver

El módulo GeoWebCache está incluidoo en la instalación de Geoserver. Es instalado y activado por defecto. Para comprobarlo, irá a  Estado del servicio->Módulos

Sin embargo, el teselado vector no está incluido en la instalación de Geoserver. Compruébelo seleccionando Capas en cache en el menu de la izquierda. Abra una capa de estilo vector. Por defecto hay varias capas de tipo vector instaladas en geoserver  (tiger:poi, sf:archsites, sf:bugsites, topp:tasmania_cities)

Vaya a la pestaña Cache de las teselas

Si no visualiza los formatos de tipo vector  (geojson,topojson,mapbox-vector) entre las opciones disponibles, la extensión no está instalada.

Para instalarla:

Vaya a la dirección http://geoserver.org/release/stable/

En Extensions -> Output formats, cliquee en  Vector Tiles para descargar los archivos de instalación.

Copie los cuatro archivos descargados en el directorio  Geoserver/webapps /geoserver/WEB-INF/lib.

Es todo. La extensión está instalada.e.

Reinicie Gesoserver (si no la extensión no será activada): Si utiliza Windows tiene dos posibilidades.

  • Si configuró el inicio de Geoserver en modo manual : Abra el panel de inicio de los programas y haga clic en Stop Geoserver, y luego en  Start Geoserver
  • si configuró Geoserver como un servicio: Abra el panel Gestion de la computadora -> Servicios; busque el servicio Geoserver y abra el menu contextual; cliquee en Reiniciar

Para verificar que la instalación se hizo sin problema, repita la manipulación  (Capas en cache -> una capa de tipo vector -> pestaña Teselas en cache)

Debe ver aparecer ahora los formatos de teselas de tipo vector.

Parámetros  de GeoWebCache

De hecho, todo está configurado por defecto en  GeoWebCache y Geoserver. Lo único que queda por configurar es el control del espacio de disco utilizado por el cache.

Por defecto, este control está desactivado. Esto quiere decir que no hay límite para el uso del espacio de disco para archivar las teselas. Según su configuración, esto puede ser aceptable. Pero en la mayoría de los casos se corre el riesgo de sufrir una baja en el rendimiento, e incluso, el bloqueo del servidor.

En la página  Capas en cache, se puede ver dos columnas : Límite de espacio y Cuota utilizada. Las dos contienen  N/A. Lo que indica que la cuota de disco no está activada.

Para activarla:

Seleccione Espacio de disco en el menú, y cliquee Activar los límites de espacio en disco.

Indique el volumen reservado y el tipo de acción a realizar si se llega a ese tamaño.

Las dos opciones posibles son borrar las teselas que son solicitadas lo menos seguido o aquellas que no han sido solicitadas desde más tiempo.

Por defecto Geoserver configura GeoWebCache para utilizar una base de datos de tipo H2 situada en el directorio del cache.

Si no es necesario manejar la historia del funcionamiento del cache, el uso de cada tesela,etc., esta opción es perfecta.

Si por el contrario,  desea archivar la historia de las consultas, el uso de las teselas, etc., puede indicar una base de datos externa del tipo que más convenga.

Un último elemento que puede interesarle: la columna Límite de espacio de la página Capas en cache. Si se busca en la documentación de Geoserver, encontrará que esta columna indica el espacio específico reservado a esta capa. Esto puede hacerse con la versión autónoma de GeoWebCache, que permite definir cuotas para cada capa de manera independiente. Pero, éste no es el caso en la versión integrada a Geoserver. En ésta, no hay manera de definir cuotas específicas. Esta columna quedará constantemente con un N/A.

Tampoco intente hacer estas definiciones directamente en el archivo  geowebcache-diskquota.xml, ya que ésto tampoco funciona.

Une vez activado el control, podráver el espacio de sico ocupado por cada una de las capas en el cache:

Configuración del cache de una capa

La pestaña Cache de las teselas se encuentra en la página Editar la capa.

Las dos primeras casillas determinan si el cache está activado para esta capa, y si el teselado debe efectuarse.

Debe marcar las casillas correspondientes a los formatos de tesela que desea. Si el servidor recibe una solicitud de formato (output) correspondiente a uno de los formatos marcados en esta págin, GeoWebCache utilizará las teselas del cache. De lo contrario (formato no marcado), el servidor generará el mapa a partir de la base de datos

En la parte baja de la página se puede seleccionar los niveles de zoom a poner en el cache.

Se puede, de esta manera, colocar en el cache solamente los niveles de zoom mas frecuentes.

La tabla siguiente es útil para determinare los niveles de zoom a utilizar:

En la primera columna se puede observar el nivel de zoom y en la quinta columna la escala geográfica correspondiente.

La acticación del proceso de teselado no es suficiente para que GeoWebCache genera las teselas.
Las teselas van a ser generadas a medida que las solicitudes lleguen al servidor. Solo las zonas y los niveles de zoom solicitados son generados a cada solicitud. Otra forma de generar las teselas, esta vez de manera completa (todos los zooms y toda la zona) es, en la página Capas en cache, solicitar una vista prevbia de la capa. Un menu permite seleccionar el formato de imagen.

Como la vista previa se traduce enh una solicitud del servidor, las teselas correspondientes serán generadas.

Por último, se puede forzar la generación de las teselas cliqueando en Generar, en la lista de Acciones de la capa (la última columna de la tabla).

Se obtiene así una página de configuración para la generación de las teselas.

Leave a Reply

Your email address will not be published. Required fields are marked *