Installer TileStache sur Ubuntu Server 12.04

jeudi 3 mai 2012

TileStache

TileStache est un serveur de tuiles codé en Python.

Il permet de servir des tuiles à partir de différents types de sources : proxy depuis un serveur de tuile distant, tuiles au format MBTiles, fichier GeoJSON, etc.

Plusieurs systèmes de cache sont disponibles : disque, memcache, Amazon S3, etc.

Installation

Traduction, et adaptation de Don’t Panic : An Absolute Beginner’s Guide to Building a Map Server.

Le paquet tilestache proposé dans les dépôts Ubuntu n’est pas à jour, on va donc procéder à une installation à partir des sources disponibles sur github.

On commence par installer Mapnik, mais pas la version proposée dans les dépôts d’ubuntu. On va utiliser une version plus récente disponible dans le dépôt de mapbox comme indiqué dans ce billet. [1]

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:developmentseed/mapbox
sudo apt-get update
sudo apt-get install libmapnik python-mapnik mapnik-utils

Puis on installe mod-python pour apache : [2]

sudo apt-get install libapache2-mod-python
sudo /etc/init.d/apache2 restart

On se déplace dans le répertoire /etc pour y installer TileStache, et on installe curl et git qui vont nous être nécessaire pour récupérer les sources.

cd /etc
sudo apt-get install curl git-core

Puis on installe les outils python et quelques librairies nécessaires :

sudo apt-get install python-setuptools python-dev python-gdal libjpeg8 libjpeg62-dev libfreetype6 libfreetype6-dev

On installe PIP pour faciliter l’installation des modules python par la suite :

curl -O https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py

On installe les modules python requis par TilesStache :

sudo pip install -U werkzeug
sudo pip install -U modestmaps

Notez que simplesjon n’est pas nécessaire si vous utilisez une version de python supérieure à la 2.6 (ce qui est le cas sur ubuntu 11.10 qui utilise python 2.7).

Avant d’installer PIL il faut vérifier la présence de certains liens symboliques dans le répertoire /usr/lib. Si les liens suivants ne sont pas présents dans ce répertoire, créez les avec les commandes suivantes :

sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib
sudo ln -s /usr/lib/x86_64-linux-gnu/libfreetype.so /usr/lib
sudo ln -s /usr/lib/x86_64-linux-gnu/libz.so /usr/lib

Puis on installe PIL :

sudo pip install pil --allow-external pil --allow-unverified pil

Enfin, on récupère TileStache depuis Github :

git clone https://github.com/migurski/TileStache.git

Et on lance le script d’installation :

cd TileStache/
python setup.py install

Finalement, on configure mod_python pour apache afin que le serveur redirige les requêtes de tuiles vers TileStache. On édite le fichier de configuration d’apache :

sudo nano /etc/apache2/httpd.conf

Et on y ajoute ceci :

<Directory /var/www/tiles>
 AddHandler mod_python .py
 PythonHandler TileStache::modpythonHandler
 PythonOption config /etc/TileStache/tilestache.cfg
</Directory>

Cette règle indique à apache de rediriger les requêtes contenant l’extension ".py" dans le répertoire "tiles" vers Tilestache. Il ne nous reste plus qu’à créer un répertoire tiles dans /var/www pour ne pas avoir de requêtes en erreur :

mkdir /var/www/tiles

On redémarrer le serveur pour terminer :

reboot

Une fois le serveur redémarré, on va pouvoir tester que tout fonctionne en affichant l’url suivante dans un navigateur :

http://adresse_ip_du_serveur/tiles/tiles.py/osm/preview.html

Si vous voyez un fond de carte OpenStreetMap s’afficher c’est que tout va bien. Toutes les couches configurées dans votre instance de TileStache disposent d’une adresse de prévisualisation du type /tiles/tiles.py/nom_de_la_couche/preview.html.

Puis, pour tester que TileStache communique bien avec Mapnik, essayez d’afficher l’url suivante :

http://adresse_ip_du_serveur/tiles/tiles.py/example/preview.html

Si vous voyez une carte simplifiée en gris et blanc c’est que Tilestache arrive bien à faire le rendu d’un fichier shapefile (celui-ci est situé dans le répertoire de TileStache).

Voilà, le serveur est fonctionnel, consultez la documentation pour découvrir toutes ses options de configuration.

Mise à jour

Pour mettre à jour votre installation, il faut dans un premier temps mettre à jour votre copie locale du dépôt GIT de Tilestache :

git pull origin master

Puis relancer le script d’installation :

python setup.py install

Prochaine étape, afficher des tuiles GeoJSON...

[1Penser à tester ce ppa pour mapnik : ppa:mapnik/v2.2.0 cf https://launchpad.net/~mapnik/archive/ubuntu/v2.2.0

[2Il est aussi possible d’utiliser le mode wsgi https://github.com/TileStache/TileStache/issues/67

Répondre à cet article

Qui êtes-vous ?
Ajoutez votre commentaire ici
  • Ce formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.