Les tuiles de fournisseurs tierce-partie sont le plus simple moyen de faire le passage à OpenStreetMap, et offrent une clarté de coûts. Cependant, si vous souhaitez prendre le contrôle complet de votre destinée, vou pouvez faire le rendu et servir vos propres tuiles. Cette section explique comment.

Es-ce que c’est vraiment pour vous?

A la fois générer et servir des tuiles entraîne des besoins matériel significatifs, en particulier si vous avez besoin d’une couverture globale et de mises à jour régulières.

Si vous configurez votre propre serveur de tuiles, nous recommandons d’utiliser Ubuntu (une distribution Linux).

Les options

  1. Faire votre serveur de tuiles en utilisant des paquets
  2. Créer un serveur de tuiles depuis les sources
  3. Utiliser une solution “tout en un”

Prérequis système

Servir vos propres cartes est une tâche assez intensive. En fonction de la taille de l’aire qui vous intéresse pour servir les tuiles et du trafic que vous attendez, les besoins système varieront. En général, les besoins pourront aller de 10-20GB de stockage, 4GB de mémoire et processeur double cœur moderne pour une région de la taille d’une ville à 300GB+ de stockage rapide(type SSD), 24GB de mémoire, et un processeur quatre cœurs pour un “planet” (l’ensemble de la donnée mondiale de la base OSM à une date donnée) entier.

Nous nous recommandons de commencer avec des extraits des données OpenStreetMap – par exemple, une ville, une région ou un petit pays – plutôt que de passer une semaine à importer le monde entier (planet.osm) et ensuite avoir à recommencer à cause d’une erreur de configuration! Vous pouvez télécharger des extractions depuis :

La chaîne d’outils

Nous utilisons une série d’outils pour générer et servir les tuiles cartographiques.

Apache fournit le serveur en front qui gère les requêtes depuis votre navigateur web et passe les requêtes à mod_tile. Le serveur web Apache peut aussi être utilisé pour fournir des contenus web statiques comme le HTML, le JavaScript, ou le CSS pour votre page web cartographique.

Une fois que Apache a géré la requête de la part de l’utilisateur web, il passe la requête à mod_tile pour la gérer. Mod_tile vérifie si la tuile a déjà été créée et est prête à être utilisée ou bien au contraire, si elle doit être mise à jour du fait qu’elle qu’elle ne serait pas déjà en cache. Si le cache est déjà disponible et ne nécessite pas d’être rendu, alors il renvoie immédiatement la tuile au client. Si il a besoin d’être rendu, alors il  s’ajoutera dans une queue de  “requêtes de rendu”, et quand il sera en haut de la queue de traitement, un rendu de tuiles générera le cache et il renverra la tuile au client.

Nous utilisons un outil appelé Mapnik pour faire le rendu des tuiles. Il récupère les requêtes de la queue de travail aussi vite qu’il est possible, extrait les données depuis de nombreuses sources selon les informations de style, et faire le rendu de la tuile. Cette tuile est renvoyée au client et Mapnik passe à l’élément suivant dans la queue.

Pour faire le rendu, la donnée OpenStreetMap est stockée dans une base de données PostgreSQL créée par un outil appelé osm2pgsql. Ces deux morceaux fonctionnent ensemble pour permettre un accès efficace à la donnée géographique OpenStreetMap. Il est possible de garder la donnée dans la base de données PostgreSQL mise à jour en utilisant un flux de fichiers de différence produit chaque 60 secondes sur le serveur principal OpenStreetMap.