Makina Blog

Le blog Makina-corpus

Un serveur OpenStreetMap pour votre ville


La mise en place d'un serveur de cartes OSM en une seule commande

Il peut être intéressant de disposer de son propre serveur OpenStreetMap, afin d'exploiter les données brutes et afficher des fonds de plan personnalisés dans les applications métiers. Nous avons donc élaboré un script qui installe l'ensemble des composants nécessaires en une seule commande.

Le script, qui ne prend en entrée que l'étendue souhaitée, met en place : 

  • la base de données ;
  • la mise à jour mensuelle ;
  • le serveur de tuiles ;
  • une carte pour visualiser les styles disponibles.

Également, de manière à pouvoir alimenter les serveurs carto WMS dans l'infrastructure existante, nous avons aussi écrit un script qui génère des dalles GeoTIFF pour les différents styles à différentes échelles.

Un script libre !

Nous avons utilisé : 

Pour plus d'informations, consulter le dépôt Github !

Générer des dalles OSM en Lambert-93 avec Mapnik

L'objectif consiste à générer une dalle, dans la projection EPSG:2154 sur l'étendue de la ville, à des échelles personnalisées (ex: 1:25000).

Mapnik dispose d'une documentation assez détaillée sur les échelles. La zone couverte et la taille de l'image générée détermine l'échelle de la dalle. Si nous voulons fixer l'échelle, nous allons calculer la taille de l'image automatiquement :

bbox = Box2d(622841, 6309460, 637418, 6320427)
scale = 1.0 / 25000
pixels_per_meter = 100.0 / 0.028  # 1 pixel = 0.28mm
width_view = bbox.width() * scale
height_view = bbox.height() * scale
width_img = width_view * pixels_per_meter
height_img = height_view * pixels_per_meter

Reste ensuite à charger à la feuille de style et faire le rendu :

SRS = "+proj=lcc +lat_1=49 +lat_2=44 +lat_0=46.5 +lon_0=3 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"

map = Map(width_img, height_img)
load_map(map, stylefile)
map.srs = SRS
map.zoom_to_box(bbox)
render_to_file(map, 'output.png', 'png')

Puis pour terminer, convertir en GeoTIFF en spécifiant l'étendue dans les métadonnées :

base_cmd = 'gdal_translate %s %s -a_srs "%s" %s'
georeference = '-a_ullr %s %s %s %s' % (bbox.minx, bbox.maxy,
                                        bbox.maxx, bbox.miny)
cmd = base_cmd % ('output.png', 'output.tif', SRS, georeference)
os.system(cmd)

Un jeu d'enfant !

Formations associées

Formations SIG / Cartographie

Formation Développer avec l'écosystème d'OpenStreetMap

Aucune session de formation n'est prévue pour le moment.

Pour plus d'informations, n'hésitez pas à nous contacter.

Voir la Formation Développer avec l'écosystème d'OpenStreetMap

Actualités en lien

Geotrek et OpenS­treet­Map : Mise en place d’une passe­relle pour une connais­sance du terri­toire enri­chie

08/09/2025

Dans l’uni­vers des logi­ciels open-source, les plus belles inno­va­tions naissent souvent de la rencontre entre des commu­nau­tés qui partagent les mêmes valeurs. Aujour­d’hui, nous célé­brons une avan­cée majeure pour Geotrek : la créa­tion d’une passe­relle avec OpenS­treet­Map (OSM), la plus grande base de données carto­gra­phique colla­bo­ra­tive au monde. Plus qu’une simple fonc­tion­na­lité, ce projet est le fruit d’un travail d’in­gé­nie­rie et de recherche appro­fondi.
Voir l'article
Image
Logo d'illustration pour la passerelle entre OSM et Geotrek

Instal­ler Geotrek : avec ou sans segmen­ta­tion dyna­mique ?

08/09/2025

Geotrek-admin propose deux modes de fonc­tion­ne­ment pour gérer les objets liés aux tronçons : avec ou sans segmen­ta­tion dyna­mique. Ce choix a un impact impor­tant sur la manière dont sont stockées et gérées les données, et sur les possi­bi­li­tés d’édi­tion, de cohé­rence topo­lo­gique et d’in­ter­opé­ra­bi­lité avec d’autres systèmes. Dans cet article, on vous explique ce qu’est la segmen­ta­tion dyna­mique ainsi que le réfé­ren­ce­ment linéaire, ses avan­tages, ses limites, et dans quels cas il est perti­nent (ou non) de les utili­ser.
Voir l'article
Image
Réseau de tronçons dans Geotrek

Makina Corpus spon­so­rise State of the Map 2025

05/06/2025

Du 13 au 15 juin 2025 à Tours, Makina Corpus a le plai­sir d’an­non­cer sa parti­ci­pa­tion à State of the Map 2025 et d’ap­por­ter son soutien à l’évé­ne­ment de la commu­nauté OpenS­treet­Map en le spon­so­ri­sant.
Voir l'article
Image
State of the Map Tours

Inscription à la newsletter

Nous vous avons convaincus