../../_images/logo_mapcache.png ../../_images/OSGeo_project.png

Inicio rápido de MapCache

MapCache es un servidor de mosaicos que acelera el acceso a las capas WMS. Se puede ejecutar como una aplicación CGI en muchos servidores web diferentes, o como un módulo Apache. OSGeoLive tiene MapCache instalado y configurado como un módulo Apache.

Este inicio rápido muestra cómo agregar una nueva capa WMS a una configuración de MapCache, mostrar el servicio de mosaico en un mapa web de OpenLayers y sembrar un caché de mosaico desde la línea de comandos.

Agregar un nuevo conjunto de mosaicos y mostrar en OpenLayers

MapCache se configura mediante archivos XML. OSGeoLive incluye un archivo de configuración de ejemplo en /usr/local/share/mapcache/mapcache-quickstart.xml. El ejemplo utiliza la aplicación MapServer de demostración OSGeoLive del condado de Itasca en los Estados Unidos como fuente.

En este inicio rápido configuraremos el almacenamiento en caché de teselas para una capa WMS adicional y mostraremos las teselas en una página HTML simple que contiene un mapa OpenLayers.

Primero, abramos el archivo de configuración de MapCache en FeatherPad, un editor de texto. Abra FeatherPad desde la línea de comando con permisos elevados, para que pueda guardar el archivo, usando Herramientas del Sistema> QTerminal y luego ejecute el siguiente comando:

sudo featherpad

Podemos ver qué capas están disponibles en nuestro servidor WMS de origen abriendo el siguiente enlace: http://localhost/itasca/?service=wms&request=getcapabilities MapCache está configurado para reenviar cualquier solicitud que no pueda manejar, como GetCapabilities, a MapServer con la regla que se muestra a continuación:

<forwarding_rule name="catch all">
  <http>
    <url>http://localhost/cgi-bin/mapserv?map=/usr/local/www/docs_maps/mapserver_demos/itasca/itasca.map</url>
  </http>
</forwarding_rule>

Uno de los nombres de capa enumerados en el documento de Capacidades WMS es dlgstln2: secuencias para el condado de Itasca. Agregaremos esto como un nuevo conjunto de mosaicos al servicio MapCache. Primero agregamos un bloque <source>: esta es la configuración para recuperar datos del servidor WMS. Agregar el siguiente bloque XML después del bloque <source name="lake_source" type="wms">...</source> utilizado para que los lagos mapcache-quickstart.xml:

<source name="streams_source" type="wms">
  <getmap>
    <params>
      <FORMAT>image/png</FORMAT>
      <LAYERS>dlgstln2</LAYERS>
      <MAP>/usr/local/www/docs_maps/mapserver_demos/itasca/itasca.map</MAP>
    </params>
  </getmap>
  <http>
    <url>http://localhost/cgi-bin/mapserv?</url>
  </http>
</source>

Usamos el bloque `` <params>`` para pasar el nombre de la capa WMS y el formato de imagen al servidor WMS, junto con el parámetro <map> específico de MapServer. La URL del servidor WMS está en el bloque `` <http>`` . Para obtener documentación sobre todos los elementos del archivo de configuración, consulte la Documentación de configuración.

A continuación, agregaremos un bloque <tileset>, que define cómo se almacenará y servirá la fuente como mosaicos. Coloque el siguiente bloque después del bloque <tileset name="lakes">...</tileset>.

<tileset name="streams">
  <source>streams_source</source>
  <cache>disk</cache>
  <grid>GoogleMapsCompatible</grid>
  <format>PNG</format>
</tileset>

Establecemos el tipo de cuadrícula en la cuadrícula incorporada de GoogleMapsCompatible utilizada como el esquema de mosaico predeterminado en muchas aplicaciones de mapeo web. Las aplicaciones cliente usan el name=streams para acceder al conjunto de mosaicos. Estamos utilizando un caché basado en disco (en lugar de almacenar mosaicos en una base de datos o en un entorno de nube).

Cada vez que modifique el archivo de configuración de MapCache, debe volver a cargar Apache para que los cambios entren en vigencia. Esto se puede ejecutar desde la línea de comando de la siguiente manera:

sudo apachectl -k graceful

Ahora debería poder acceder a un mosaico con la siguiente URL: http://localhost/itasca/gmaps/streams@GoogleMapsCompatible/12/987/1433.png

../../_images/stream_tile.png

Ahora agreguemos el conjunto de mosaicos a nuestro mapa OpenLayers. Abra la página HTML con el siguiente comando:

sudo featherpad /var/www/html/mapcache-quickstart/index.html

Descomente el código JavaScript a continuación:

,new ol.layer.Tile({
    source: new ol.source.XYZ({
        url: 'http://localhost/itasca/gmaps/streams@GoogleMapsCompatible/{z}/{x}/{y}.png'
    })
})

Ahora refresque la página enhttp://localhost/mapcache-quickstart/ - debería ver la nueva capa de secuencias que atendidas por MapCache.

../../_images/openlayers.png

Mientras navega por el mapa, verá que las carpetas de caché de mosaico en /var/cache/mapcache llenan las imágenes PNG.

../../_images/tilecache.png

La ubicación y el tipo de caché se configuran mediante el siguiente bloque en el archivo de configuración:

<cache name="disk" type="disk">
  <base>/var/cache/mapcache</base>
  <symlink_blank/>
</cache>

Añadiendo nuevos servicios

Puede configurar Apache para ejecutar tantos servicios MapCache diferentes, cada uno con su propio archivo de configuración editando el archivo /etc/apache2/conf-enabled/mapcache.conf. Como esto requiere permisos de superusuario, puede abrirlo para editarlo en FeatherPad ejecutando el siguiente comando:

sudo featherpad /etc/apache2/conf-enabled/mapcache.conf

OSGeoLive tiene dos servicios MapCache, cada uno con un alias y un archivo de configuración. El alias es el URL para usar en el servidor, por ejemplo, http://localhost/mapcache y http://localhost/itasca

<IfModule mapcache_module>
   <Directory /path/to/directory>
      Order Allow,Deny
      Allow from all
   </Directory>
   MapCacheAlias /mapcache "/usr/share/doc/libapache2-mod-mapcache/examples/mapcache.xml"
   MapCacheAlias /itasca "/home/user/mapcache.xml"
</IfModule>

Para agregar un nuevo servicio, simplemente agregue una nueva línea en el siguiente formato, reemplazando WEB_PATH y PATH_TO_CONFIG_FILE con los parámetros relevantes:

MapCacheAlias WEB_PATH "PATH_TO_CONFIG_FILE"

Consulte las instrucciones del módulo Apache para obtener más detalles sobre la configuración del módulo Apache.

La aplicación de la sembradora

Los mosaicos de mapas se crean dinámicamente cuando lo solicita el servidor web. Para acelerar los tiempos de solicitud, podemos generar mosaicos utilizando una aplicación de línea de comandos. Este proceso se conoce como sembrado, y la de línea de comandos de la aplicación MapCache es mapcache_seed.

Para asegurarnos de que la cuenta del servidor web mapcache_seed acceder a los mosaicos creados por la aplicación de la sembradora, agregamos sudo -u www-data antes de ejecutar la aplicación``mapcache_seed``.

En el siguiente ejemplo, pasamos tres opciones a mapcache_seed:

  • config: /home/user/mapcache/mapcache-quickstart.xml: esta es la ruta al archivo de configuración de MapCache

  • tileset: lakes: este es el nombre del conjunto de mosaicos que vamos a sembrar, y se encuentra en mapcache-quickstart.xml

  • zoom: 0,5 - este es el rango de niveles de zoom que vamos a sembrar, desde el nivel de zoom 0 (la extensión del mundo en un solo mosaico) hasta el nivel de zoom 5

sudo -u www-data mapcache_seed --config /home/user/mapcache/mapcache-quickstart.xml --tileset lakes --zoom 0,5

Para conocer muchas otras opciones de``mapcache_seed``, consulte la Documentación de Sembrado.

../../_images/seeder.png

Si desea eliminar una carpeta de caché, puede ejecutar el siguiente comando:

sudo rm -r /var/cache/mapcache/lakes

¿Qué sigue?

  • Lea la documentación de MapCache.

  • Luego, únase a la comunidad MapServer, de la cual MapCache forma parte, en las listas de correo para intercambiar ideas, discutir posibles mejoras de software y hacer preguntas.