Tutoriel tilecache

From OSGeo
Revision as of 13:53, 3 August 2008 by Wiki-Simw2p (talk | contribs) (New page: = Roadmap TileCache pour OpenLayers = [http://tilecache.org/ TileCache] est une solution ultra simple, efficace et performante … et surtout de l'avis de plusieurs, une solution d’ave...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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_ »
#-----------------------------------
#Fichier \ms4w\httpd.d\httpd_tilecache.conf
#-----------------------------------
#Cet Alias permet d'exposer le répertoire
#de tuile des layers TileCache. Notons
#que le listage Web est interdit dans ce
#config
#-----------------------------------
Alias /tilecach/ "F:/Data/tilecach/"
<Directory "F:/Data/tilecach/">
  AllowOverride None
  Options Indexes FollowSymLinks Multiviews 
  Order allow,deny
  Allow from all
  Options -Indexes
</Directory>

#-----------------------------------
#exposer Tilecache en mode CGI
#-----------------------------------
<Directory "/ms4w/apps/tilecache">
        AddHandler cgi-script .cgi
        Options +ExecCGI       
</Directory>

#-----------------------------------
#Pour mod_python, mais pas testé
#-----------------------------------
#    <Directory "/ms4w/Apache/apps/tilecach/">
#       AddHandler python-program .py
#       PythonHandler TileCache.Service 
#       PythonOption TileCacheConfig /ms4w/apps/tilecache/tilecache.cfg
#    </Directory>


  • 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):
  • 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 :
#-----------------------------------
#Fichier \ms4w\httpd.d\httpd_openlayers.conf
#-----------------------------------
#Cet Alias permet d'exposer le répertoire
#openlayers
#-----------------------------------
Alias /cartesimple/ "/ms4w/apps/OpenLayers/"
<Directory "/ms4w/apps/OpenLayers/">
    AllowOverride None
    Options Indexes FollowSymLinks Multiviews 
    Order allow,deny
    Allow from all
    Options -Indexes
</Directory>


Installation Linux

TODO ...