Hébergez vous-même OpenStreetMap

OpenStreetMap (OSM) est une carte du monde gratuite créée de manière collaborative par des personnes du monde entier – gratuite, ouverte et indépendante. Alors que Google Maps, en tant que leader du marché, est souvent le premier choix pour les cartes numériques, OSM s'appuie sur un principe complètement différent : une communauté collaborative qui collecte, améliore et met à disposition gratuitement des données géographiques.


Pourquoi est-ce important ? Parce que les cartes sont des connaissances – et la connaissance doit être gratuite. Pour des applications individuelles, il peut être utile d'héberger soi-même les données OSM afin de développer des solutions cartographiques personnalisées et de conserver le contrôle sur les données et leur présentation. L'auto-hébergement OSM offre plusieurs avantages:

  • Indépendance: Vous ne dépendez pas de services externes et avez un contrôle total sur les données de la carte.
  • Adaptabilité: Vous pouvez personnaliser le style de la carte et les données affichées selon vos propres besoins.
  • Protection des données: Toutes les données sont hébergées localement. Aucune API externe n'est appelée.

Il existe deux méthodes principales pour afficher les cartes:

  • Tuiles de grille: Fichiers d'image prédéfinis pour différents niveaux de zoom. Ils sont faciles à mettre en œuvre mais offrent moins de flexibilité dans la personnalisation du style de la carte.
  • Tuiles vectorielles: Contient des données géographiques sous forme de vecteurs (points, lignes, polygones) qui sont rendus côté client. Cela permet des ajustements flexibles de la conception de la carte et un affichage net à tous les niveaux de zoom. Cependant, le rendu nécessite plus de puissance de calcul sur le périphérique client.

Les tuiles vectorielles sont particulièrement adaptées à l'auto-hébergement car elles offrent plus d'options de personnalisation et sont plus efficaces. Pour les cartes régionales avec des zones plus petites, environ 1 Go d'espace disque dur est souvent suffisant. Il est judicieux d'utiliser des SSD car ils offrent des avantages de vitesse lors du chargement des tuiles. Les tuiles vectorielles statiques ne nécessitent pas de serveur de carte en cours d'exécution (par exemple TileServer GL ou Mapnik), ont des exigences de maintenance moindres et une charge de serveur moindre - elles sont idéales pour les petits projets avec des sections de carte fixes.

Mon petit paquet Aide osm facilite le processus de création et de déploiement de tuiles vectorielles à partir de .osm.pbfDes dossiers. Les cadres de délimitation personnalisés permettent aux développeurs d'extraire des zones géographiques spécifiques et de générer des fichiers standard correspondants qui peuvent être téléchargés directement sur un serveur. Cela rend l’intégration des données OSM dans les projets Web beaucoup plus facile. Pour utiliser osmhelper, une certaine préparation est nécessaire. La bibliothèque est basée sur des outils tels que osmium, mutil et carreleur qui doit être installé.

Installation d'osmium

osmium est un outil puissant pour le traitement des données OSM.

mkdir osmium
cd osmium
wget https://github.com/osmcode/osmium-tool/archive/refs/tags/v1.16.0.tar.gz
tar -xzf v1.16.0.tar.gz
cd osmium-tool-1.16.0
apt-get install libosmium2-dev libprotozero-dev nlohmann-json3-dev libboost-program-options-dev libbz2-dev zlib1g-dev liblz4-dev libexpat1-dev cmake pandoc
mkdir build
cd build
cmake ..
make
make install
cd ..
cd ..
rm -rf ./osmium
exec env -i HOME=$HOME bash -l
osmium --version

Installation de mbutil

mbutil est un outil basé sur Python pour travailler avec les MBTiles.

git clone https://github.com/mapbox/mbutil.git
cd mbutil
python setup.py install
cd ..
rm -rf ./mbutil
exec env -i HOME=$HOME bash -l
mb-util --version

Installation de carreleur

tilemaker est un outil open source qui convertit les données OSM directement en tuiles vectorielles.

apt install build-essential libboost-dev libboost-filesystem-dev libboost-program-options-dev libboost-system-dev lua5.1 liblua5.1-0-dev libshp-dev libsqlite3-dev rapidjson-dev
git clone https://github.com/systemed/tilemaker.git
cd tilemaker
make
make install
cd ..
rm -rf ./tilemaker
exec env -i HOME=$HOME bash -l
tilemaker --help

Télécharger le script de conversion

mkdir openstreetmap
cd openstreetmap
wget -O ./convert.sh https://raw.githubusercontent.com/vielhuber/osmhelper/refs/heads/master/convert.sh
chmod +x convert.sh

Utilisation d'osmhelper

Après avoir installé les outils requis, osmhelper peut être utilisé pour générer des tuiles vectorielles et les préparer pour l'hébergement:

./convert.sh \
    --url https://download.geofabrik.de/europe/germany-latest.osm.pbf \
    --lat-min 47.27 \
    --lon-min 8.97 \
    --lat-max 50.57 \
    --lon-max 13.84 \
    --compress

Ce processus permet de fournir des sections de carte personnalisées de manière efficace et sans avoir besoin d'un serveur de carte dynamique. L'intégration des données OpenStreetMap dans vos propres projets peut être complexe, notamment en matière d'hébergement et de déploiement. Étant donné que Google Maps détient le monopole des solutions de cartographie, de nombreux développeurs recherchent des alternatives. osmhelper facilite la mise en route de l'hébergement de vos propres données OpenStreetMap. Cela vous donne un contrôle total sur vos cartes, aucune restriction d'API et la possibilité d'ajouter vos propres couches de données.

La plupart des gens connaissent Google Maps comme la solution standard pour les cartes numériques. Mais peu de gens savent qu’OpenStreetMap est une excellente alternative – sans restrictions commerciales ni coûts cachés. Alors que Google Maps facture des frais d'utilisation de l'API et collecte des données utilisateur, OSM est gratuit, ouvert et soutenu par une communauté mondiale. OSM est le Wikipédia du monde des cartes – tout le monde peut contribuer, ajouter des routes, des sentiers de randonnée ou des POI (points d'intérêt) et ainsi améliorer la carte du monde gratuite.

Retour