Posts tagged ‘tiling’

GigaPixel

Lo último en lo que andamos enredados es haciendo fotos muy grandes para luego mostrarlas haciendo tiling, hacemos muchas fotos, hacemos una grande y luego la volvemos a partir para mostrarla. Eso es el resumen rápido , ahora lo contaré pormenorizado. Pinchando sobre las imágenes se puede ver a qué me refiero cuando hablamos de una foto grande.

Anuncios

Continue Reading enero 27, 2009 at 7:07 pm 2 comentarios

Haciendo tile cache de WMS en ubuntu

Tile cache en WMS es una técnica que consiste en tener el mapa cortado en trocitos y cacheado de forma que el servidor no tiene  que estar generando una imagen cada vez que se hace una petición. De esta manera trabaja kamap, google maps, etc…

Estábamos intentando poner entre en el server (Mapserver en nuestro caso) y el cliente (Openlayers en nuestro caso) algo que nos hiciera es tile cache y que fuera lo más independiente de ambos que se pudiera.

Empezamos a tratar el tema usando GeoWebCache, tenía muy buena pinta, parecía fácil de configurar y ligerito. Nos metimos en faena y después de un rato nos sale:

org.geowebcache.GeoWebCacheException: GeoWebCache only handles EPSG:4326 and EPSG:900913!

¡Sólo soporta esas dos proyecciones!

Buceando un poco en la documentación parece ser que estas dos proyecciones son las recomendadas por el OGC para hacer tile cache

http://blog.geoserver.org/2008/03/12/geowebcache-070/

Tras trastear un poco decidimos descartarlo por ahora y nos lanzamos a buscar alternativas y había dos (Gracias Xurxo). En primer lugar ka-map! pero usando como cliente openlayers.Esta opción la descartamos por su fuerte dependencia de mapserver y porque estamos esperando a la version siguiente que funcionará ya con openlayers, aunque me quedé con ganas de probarlo pero no teníamos tanto tiempo y en segundo lugar TileCache de  mercarta. Es una pequeña librería de python que funciona sobre apache y fue por la que al final nos decantamos.

Voy a escribir aqui las cosas que tuvimos que hacer para que nos funcionara TileCache.

En primer lugar es necesario que nuesto apache ejecute python.

Para instalar apache2 y el mod_python seguí al pie de la letra este post y me funciono directamente

http://tru3n0.com/index.php/2007/10/18/instalar-apache2-mod_python-en-debian/

Y ahora viene lo que es la configuración en sí del TileWebCache

1 . Bajar la aplicación de http://www.tilecache.org/

2. El tar que bajamos, lo descomprimimos en la carpeta accesible por apache, típicamente en ubuntu y con todo bajado por apt esta carpeta es /var/www con lo que el directorio de tilecache será

/var/ww/tilecache

Al descomprimir en la carpeta tilecache hay varios archivos en el directorio. Como lo estamos haciendo con mod_python, el archivo tilecache.cgi debe ser renombrado a tilecache.py.

3. Editamos el archivo

/etc/apache2/sites-available/default (en mi caso)

y añadimos:

 <Directory /var/www/tilecache/>
AddHandler mod_python .py
PythonHandler TileCache.Service
PythonOption TileCacheConfig /var/www/tilecache/tilecache.cfg
PythonPath "['var/www/tilecache/'] + sys.path
PythonDebug On
</Directory>

La opción PythonPath arregla el error:

ImportError: No module named TileCache.Service

Este error me estuvo volviendo loco durante un buen rato, evidentemente ahí hay que poner
los paths que tenga cada uno a tilecacache

Después de tocar este archivo hay que reiniciar apache,  pero ya podemos ver si funciona tilecache poniendo en nuestro navegador lo siguiente:

http://localhost/tilecache/tilecache.py?LAYERS=basic&SERVICE=WMS%20&VERSION=1.1.1&REQUEST=GetMap&SRS=EPSG:4326&BBOX=-180,-90,0,90%20&WIDTH=256&HEIGHT=256

Si nuestro apache está montado en otro path o con otra ip, pues habrá que poner la url correctamente

4. Tile Cache ya funciona, ahora tenemos que añadir nuestras propias capas para tener una instalación completa. Esto se hace editando el archivo tilecache.cfg .

[cache]
type=Disk
base=/temp/tilecache

Con el parámetro anterior se fija el path donde se guardan los tiles en el disco

Para conocer lo que significan todos los parámetros debemos consultar:

http://www.tilecache.org/readme.html#configuration

En mi caso el archivo de configuración es:

type=WMSLayer
url=http://localhost:80/cgi-bin/mapserv?map=/var/www/cultura/cultura.map
layers=municipios
extension=png
srs=EPSG:23030
extent_type=loose
bbox=107897, 4201010, 360935, 4490145
resolutions= 564.716797,282.358398,141.179199,70.589600,35.294800,17.647400,8.823700,4.411850,2.205925,1.102962,0.551481,0.275741

Los parámetros mś complicados de averiguar fueron las resoluciones disponibles, pero con la ayuda de firebug, viendo las peticiones que hacía mi cliente te openlayers para cada nivel de zoom pude ir averiguando las resoluciones, segun la documentación, si fijamos maxresolution tile cache automáticamente genera un array con las resoluciones permitidas.

Funciona bastante bien por ahora, tendremos que verlo en el servidor…

julio 24, 2008 at 7:55 am 19 comentarios


Entradas recientes

Blog Stats

  • 69,396 hits