Tutoriel tilecache

= Roadmap TileCache pour OpenLayers =

TileCache est une solution ultra simple, efficace et performante … et surtout de l'avis de plusieurs, une solution d’avenir pour la cartographie sur le Web! Malheureusement, on trouve peu de documentation sur sur ce produit encore peu utilisé. Outre les informations contenues dans le package d’installation, quelques forums et ce blog on est face a soit-même et parfois bien seul! Voici donc quelques notes pour aider ceux qui veulent se lancer.

Il existe plusieurs exemple concret sur le Web de l’efficacité de TileCache. Les exemples au Québec sont peu nombreux mais on peut consulter l’exemple de la BDGA Base de données géographique administrative construit par le Ministère de la sécurité publique du Québec sur lequel est basé ce tutoriel.

Petite note importante, TileCache ne fonctionne QU’AVEC le viewer OpenLayers qui n’est pas vraiment traité ici. Par contre, les exemples avec OpenLayers sont nombreux et en plus il est très simple à installer. De plus, on tient pour acquis que le lecteur maîtrise Mapserver.

Objectif de TileCache
TileCache permet de sauvegarder à l’avance sur un serveur la couverture entière d’un layer ou d’une combinaison de layers, en tuile(fichier gif ou png) pour un nombre déterminé de zoom. L’idée est de préparer à l’avance TOUTES les images qui peuvent être consultées par un utilisateur dans le seul but d’être utra rapide. On a rien inventé de nouveau ici, on ne fait que reprendre le principe de Google maps qui fonctionne déjà très bien et que tout le monde connaît.

Les sources de données de TileCache
Les sources de données pour alimenter TileCache sont principalement les WMS. TileCache permet par exemple de « feeder » (préparer a l'avance et sauvegarder localement) un WMS sur votre serveur pour le rendre très très performant. On ne peut pas penser à OGR ou un simple Shapefile pour produire un Cache, on a besoin d’un WMS.

Installation Windows

 * On considère ici avoir déjà installé MS4W.  On trouve dans ce package tout les outils essentiels(Apache dans cet exemple) pour faire rouler TileCache.


 * Ensuite on doit installer python (python-2.5.2.msi) avec une variable d’environnement qui pointe sur le répertoire « bin » de python(PYTHON c:\python25).


 * Si on veut avoir plus de performance(composante non obligatoire mais on le recommande fortement pour accélérer la génération du cache) installer Python Imaging librairy (PIL-1.1.6.win32-py2.5.exe). Cette librairie permet de spécifier une option de metaTile(voir plus bas).


 * Enfin, encore une fois pour la performance (composante non obligatoire), il est possible d’installer le mod_python (mod_python-3.3.1.win32-py2.5-Apache2.2.exe) pour inclure dans la mémoire cache d’Apache les paramètres TileCache et une exécution directe de python par Apache(pour ma part je n’ai pas testé?).


 * Décompresser une application TileCache dans un répertoire visible du web. On peut par exemple le placer dans le répertoire /ms4w/apps/tilecache.  Pour le rendre visible sur le Web en mode CGI, on peut simplement placer un nouveau fichier de configuration Apache dans le répertoire /ms4w/httpd.d/ portant une nom de fichier débutant par « httpd_ »

Alias /tilecach/ "F:/Data/tilecach/"  AllowOverride None Options Indexes FollowSymLinks Multiviews Order allow,deny Allow from all Options -Indexes 
 * 1) Fichier \ms4w\httpd.d\httpd_tilecache.conf
 * 2) Cet Alias permet d'exposer le répertoire
 * 3) de tuile des layers TileCache. Notons
 * 4) que le listage Web est interdit dans ce
 * 5) config
 * 1) que le listage Web est interdit dans ce
 * 2) config

 AddHandler cgi-script .cgi Options +ExecCGI 
 * 1) exposer Tilecache en mode CGI
 * 1) exposer Tilecache en mode CGI


 * 1) Pour mod_python, mais pas testé
 * 2)    
 * 3)       AddHandler python-program .py
 * 4)       PythonHandler TileCache.Service
 * 5)       PythonOption TileCacheConfig /ms4w/apps/tilecache/tilecache.cfg
 * 6)    
 * 1)       PythonOption TileCacheConfig /ms4w/apps/tilecache/tilecache.cfg
 * 2)    


 * On doit éditer l’entête des fichiers pythons qui référence l’exécutable python(tout dépendant de son installation)… Dans le cas de tilecache simplement changer la première ligne du fichier tilecache.cgi
 * !C:/Python25/python.exe -u


 * Sur la version dans ce tutoriel et selon ce post on doit faire une modification dans le script python layer.py. Dans les environs de la ligne 115, changer cette ligne

def getCell (self, (minx, miny, maxx, maxy), exact = True):

Pour def getCell (self, (minx, miny, maxx, maxy), exact = False):

Alias /cartesimple/ "/ms4w/apps/OpenLayers/"  AllowOverride None Options Indexes FollowSymLinks Multiviews Order allow,deny Allow from all Options -Indexes 
 * On doit aussi, si ce n’est pas déjà fait installer OpenLayers et exposer ce répertoire sur le Web. Pour l’instant TileCache ne fonctionne qu’avec OpenLayer.  Voici un fichier configue Apache pour OpenLayers :
 * 1) Fichier \ms4w\httpd.d\httpd_openlayers.conf
 * 2) Cet Alias permet d'exposer le répertoire
 * 3) openlayers
 * 1) Cet Alias permet d'exposer le répertoire
 * 2) openlayers

Installation Linux
TODO ...

Configuration de TileCache
le reste du tutoriel sera bientôt complété