15 juin 2011

Introduction


TileMill est un logiciel qui a pour but de produire des cartes qu'on puisse mettre à disposition facilement en ligne. Pour cette raison, les cartes sont générées en projection "Web Mercator" (souvent associé au code EPSG 900913). Il s'appuie sur les avancées de Mapnik, le moteur de rendu cartographique utilisé par OpenStreetMap. Il emprunte une partie de sa logique à celle des graphistes web : le système pour personnaliser les styles des cartes s'approche des CSS alors que les styles lorsqu'on utilise des standards sont définis généralement avec le SLD.
Le project se concentre clairement sur le rendu de cartes, les fonctionnalités permettent de l'analyse spatiale et de l'interrogation géographique basique.

Commençons par mettre en place le système d'exploitation pour cela (en supposant que vous êtes sous Windows)

Installation de la machine virtuelle


Installer Virtualbox

Aller sur http://www.virtualbox.org/wiki/Downloads
Récupérer la version "VirtualBox 4.0.8 for Windows hosts".
Installer Virtualbox en exécutant le programme téléchargé.

Récupérer une image disque

Il existe des images disque déjà prêtes sur http://virtualboxes.org/images/ubuntu/ , ce qui permet de gagner du temps.
Dans notre cas, il faut plus particulièrement utiliser cette image Ubuntu 10.04.
Nous avons fait ce choix plutôt que celui du Live DVD OSGEO car il ne faut télécharger que 600 Mo alors que sinon, il faut récupérer 4,5 Go.

Installer 7-zip pour gérer les bz2

Il vous faut aussi 7-zip, un utilitaire de décompression opensource (équivalent de Winrar ou Winzip) qui gére les archives bz2.
Vous pouvez le récupérer en allant sur le site officiel ou pour le lien direct

Intégrer l'ensemble des éléments précédents

Maintenant, vous allez pouvoir décompresser l'archive précédemment téléchargée.

Nous présupposons que vous savez utiliser un minimum VirtualBox et que charger une image vdi n'est pas un problème (le temps estimé pour que le système soit opérationnel est inférieur à 10 min).
Nous vous conseillons d'allouer au moins 1024 Mo de RAM car la compilation est plutôt longue.

Tout va bien, vous avez installé l'image vdi, maintenant lancez la machine virtuelle et connectez-vous avec le nom d'utilisateur ubuntu et le mot de passe reverse.

Attention, en arrivant, vous êtes en clavier qwerty. Il vous faut passer en français et aller dans System > Preferences > Keyboard puis aller dans l'onglet Layouts, faire Add, rajouter "France" puis faire Move Up après avoir sélectionné France.

Installer les logiciels prérequis à TileMill


Rentrons dans le vif du sujet pour nous concentrer enfin sur TileMill et ses prérequis

Dans un premier temps, il va falloir ajouter un dépôt car TileMill dépend de Mapnik 2 qui dépend de Boost et ce dernier par défaut est trop ancien sur Ubuntu 10.04. Le tutoriel officiel est pour cela donné pour la version 10.10 mais nous préférons travailler avec les versions dite LTS (Long Term Support) pour des raisons de stabilité.

Mise à jour pour avoir la version récente de Boost


sudo add-apt-repository ppa:lucid-bleed/ppa
sudo apt-get update
sudo apt-get upgrade

Mapnik : installation des prérequis et de la bibliothèque

Les dépendances Mapnik


sudo apt-get install -y g++ cpp \
libboost-filesystem1.42-dev \
libboost-program-options1.42-dev \
libboost-python1.42-dev libboost-regex1.42-dev \
libboost-system1.42-dev libboost-thread1.42-dev \
python-dev libxml2 libxml2-dev \
libfreetype6 libfreetype6-dev \
libjpeg62 libjpeg62-dev \
libltdl7 libltdl-dev \
libpng12-0 libpng12-dev \
libgeotiff-dev libtiff4 libtiff4-dev libtiffxx0c2 \
libcairo2 libcairo2-dev python-cairo python-cairo-dev \
libcairomm-1.0-1 libcairomm-1.0-dev libsigc++-2.0-dev \
ttf-unifont ttf-dejavu ttf-dejavu-core ttf-dejavu-extra \
subversion build-essential python-nose

Les dépendances des plugins Mapnik


sudo apt-get install libgdal1-dev python-gdal \
postgresql-8.4 postgresql-server-dev-8.4 postgresql-contrib-8.4 postgresql-8.4-postgis \
libsqlite3-0 libsqlite3-dev

Installer Mapnik depuis les sources


cd ~
svn checkout -r 2898 http://svn.mapnik.org/trunk mapnik2
cd mapnik2
python scons/scons.py configure
python scons/scons.py
sudo python scons/scons.py install

Installer TileMill et commencer à l'utiliser


Installer Git pour récupérer les sources de Tilemill


sudo apt-get install git-core

Installer les paquets pour résoudre les dépendances de TileMill


sudo apt-get install curl

Télécharger TileMill


cd ..
git clone https://github.com/mapbox/tilemill.git

Compiler et installer


cd TileMill
./ndistro

Lancer TileMill


./tilemill.js

Jouer enfin...

On a lancé TileMill. Il est accessible maintenant en allant dans votre navigateur à l'adresse http://localhost:8889
Les tests sont concluants avec Chrome 6 et plus, Firefox 3 et plus et IE8 et plus.
Nous ne nous sommes pas attardés sur la manière de personnaliser le résultat car nous avons aussi traduit le guide d'utilisateur de TileMill (qui depuis quelques semaines supporte PostGIS pour rappel).

Thomas Gratier

A propos de l'auteur: 
Thomas Gratier

A partir du moment où ils permettent de faire de la géomatique/cartographie, l'auteur utilise tous les languages de programmation en particulier ceux dynamiques (JavaScript, PHP, Python, ...)

"Dépendant" au webmapping côté client comme serveur (avec surtout MapServer, PostGIS, OpenLayers et GDAL) et plus généralement à la cartographie, il se soigne en faisant sa veille technologique sur la dataviz, l'opensource et l'opendata.

Sa présence dans l'équipe s'explique par une phrase : "Autant mutualiser notre curiosité!"

Lecteur assidu, il est surtout un fan de pêche à la ligne quand il dispose de suffisamment de temps ;)