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 12.04 qui utilise python 2.7.x).
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...