Comment déployer votre propre serveur de cartographie OpenStreetMap avec Headway
Si vous avez déjà dû mettre en place votre propre infrastructure de cartographie, vous vous souvenez probablement de la galère. D'abord, vous configurez un serveur de tuiles pour le rendu de la carte de base, puis vous connectez séparément Nominatim ou Pelias pour la recherche d'adresses, ensuite vous déployez Valhalla ou OSRM pour le routage, et par-dessus tout, vous essayez de tout assembler avec une interface web. Au final, une tâche simple se transforme en un désordre d'une douzaine de services et fichiers de configuration incompatibles.
Je suis récemment tombé sur le dépôt Headway, dont les auteurs ont tenté de résoudre exactement ce problème. Ils ont assemblé un serveur de cartographie prêt à l'emploi sous forme d'une pile complète et prête à l'emploi fonctionnant avec les données OpenStreetMap.
Ce qu'il y a dans la boîte
Le concept central du projet est simple : permettre aux développeurs de faire tourner un service de cartographie complet avec seulement quelques commandes, sans avoir à assembler manuellement les composants.
La pile comprend :
- Carte de base avec une interface web prête à l'emploi pour les navigateurs
- Géocodeur pour rechercher des adresses et des points d'intérêt (POI)
- Moteur de routage
- Ensemble de configurations prêtes à l'emploi pour plus de 200 villes populaires
Le projet est écrit en Rust et conçu pour l'auto-hébergement. Vous pouvez prendre un extrait OSM pour un quartier spécifique, une métropole ou un pays entier et le transmettre aux scripts de construction.
Comment s'en sortent le routage et la recherche
À l'étape actuelle, Headway gère les fonctions de base pour lesquelles on utilise généralement ces services.
D'abord, il y a le géocodage. La barre de recherche vous permet de trouver des noms de rues, des numéros de bâtiments et des établissements dans le fragment de carte chargé.
Ensuite, il y a le calcul d'itinéraires entre deux points. Trois modes de déplacement principaux sont pris en charge :
- Piéton
- Vélo
- Voiture
Le routage en transports en commun est encore en développement, donc ne vous attendez pas encore aux connexions de métro ou de bus.
Configuration système et détails de compilation
Il n'y a pas de miracle : le traitement des données géospatiales atteint toujours les limites matérielles. Les développeurs préviennent honnêtement dans la documentation de l'appétit de la pile.
La génération des fichiers de travail nécessite une machine Linux ou macOS (architecture amd64) avec au moins 8 Go de RAM. Si vous décidez de construire une grande région, vous aurez besoin de considerably plus de mémoire. Pendant la phase de préparation des données, le projet consomme temporairement 50 à 100 Go d'espace disque, alors vérifiez votre espace libre sur le SSD au préalable.
Une fois la compilation et le traitement des extraits terminés, les besoins en ressources diminuent considérablement. L'exécution et la diffusion de requêtes pour une ville moyenne nécessitent environ 4 Go de RAM sur le serveur.
Où cela peut être utile
Déployer une telle pile a du sens dans plusieurs scénarios clairs :
- Environnements isolés et réseaux air-gapped. Si une application d'entreprise fonctionne dans un périmètre fermé sans accès à Internet, Headway couvre le besoin de cartes externes.
- Services locaux de livraison et de logistique. Lorsque votre activité est limitée à une seule ville ou région, il n'y a pas d'intérêt à payer des API de cartographie commerciales pour chaque requête de géocodage et de routage.
- Projets personnels et prototypes. Démarrage rapide sur une machine locale sans inscription de clés API auprès de services tiers.
- Exigences de confidentialité. Les données sur les mouvements des utilisateurs et les requêtes de recherche restent strictement sur votre serveur.
Cela vaut-il la peine d'essayer
Headway est publié sous la licence libre Apache 2.0. Le projet a un objectif clair et un concept épuré : supprimer la corvée de configuration des services géo.
Si vous avez besoin d'un serveur de cartographie local pour une ville ou une région spécifique, c'est un excellent candidat pour les tests. Commencez par l'un des 200 préréglages de villes prêts à l'emploi pour évaluer les performances et la convivialité de l'interface, puis passez à la construction de vos propres extraits OSM.
Projets similaires