Vous pouvez router sur Overture, et chaque tuile construite vous appartient
18,0 secondes. C'est le temps que DuckDB a mis, sur le portable de Boris le 11 octobre 2026, à filtrer 106 242 segments de transport issus de la release Overture 2026-09-23.1 pour le bassin du Tahoe, en élaguant les fichiers Parquet sur S3 à la place plutôt qu'en téléchargeant des thèmes entiers. Le chiffre qui porte l'histoire est un autre : zéro, le nombre de services de routage gérés qui vous restitueront ces mêmes segments sous forme d'itinéraires virage par virage.
L'affirmation, formulée pour qu'un sceptique puisse l'attaquer : vous pouvez router sur Overture dès maintenant, parce que l'Overture Maps Foundation maintient omf-bifrost, un outil Rust de son dépôt OvertureMaps/transportation-routing qui construit les tuiles de graphe Valhalla directement depuis le GeoParquet d'Overture. Le moteur sous-jacent a des années d'usage en production derrière lui. L'outil qui l'alimente est jeune, et cette différence est tout l'objet de ce billet. Ce que personne n'offre au-dessus, c'est un point de terminaison avec un SLA, un modèle de trafic, ou quelqu'un à appeler quand l'itinéraire choisi emprunte un pont fermé depuis mars.
Sur Overture, vous êtes l'opérateur de votre propre carte. Nous exerçons déjà ce rôle sur OpenStreetMap : le planneur de sentiers d'AngoraTek tourne sur un graphe que nous avons filtré et enrichi d'élévation nous-mêmes, un chantier raconté en août dans un billet sur le graphe de sentiers. Le moteur en était la partie facile, et nous prévoyons qu'il le reste ici. La différence intéressante est la matière première, parce que cette fois elle arrive pré-typée.
Une release épinglée ne vous surprend jamais, et ne se corrige jamais non plus
Rien dans le thème transportation de la release 2026-09-23.1 n'est de la télémétrie. Le schéma connaît la limite de vitesse d'un segment ; il n'a jamais attendu dans la file derrière elle. Overture ne publie ni trafic, ni vitesses historiques, ni rien qui ressemble à un flux vivant, à quelque version que ce soit.
Cette absence est aussi le produit. Un graphe construit depuis une release épinglée est reproductible : reconstruisez contre 2026-09-23.1 et l'entrée n'a pas bougé sous vos pieds, ce qui permet de déboguer un itinéraire contesté au printemps dernier sans se demander d'abord si les données ont changé en dessous. Un flux vivant n'offre jamais cela, et il ne vous dit jamais ce qu'il a altéré cette semaine. Les releases arrivent chaque mois, donc les reconstructions peuvent tomber sur votre calendrier : épinglez 2026-09-23.1 pour le trimestre en cours, adoptez la suivante quand vos propres tests passent dessus.
Le prix mérite sa propre phrase. Un graphe construit en novembre est une carte de novembre, fermetures comprises, aussi longtemps que vous continuez à construire depuis cette release. La parade : des reconstructions datées, planifiées, plus un rapport de diff que quelqu'un lit vraiment. Et cette personne, c'est vous. Quand le travail de rapprochement devient un métier à plein temps, vous avez recréé les coûts d'un fournisseur sans le fournisseur, et c'est le moment de renégocier le marché.
Deux commandes entre une release et un moteur de routage
L'interface en ligne de commande d'omf-bifrost expose deux commandes pertinentes, build-tiles et build-admins. La première lit les segments de transport d'Overture et écrit les tuiles de graphe Valhalla. La seconde construit la base administrative que Valhalla consulte pour les règles de routage propres à chaque pays et pour les fuseaux horaires. Les deux lisent le même GeoParquet que tout le reste de l'outillage Overture :
s3://overturemaps-us-west-2/release/2026-09-23.1/theme=transportation/type=segment/*.parquet
Ces fichiers sont organisés en partitions hive et portent une struct bbox, donc une construction peut élaguer des régions entières avant de lire la moindre géométrie. C'est le même mécanisme qui a rendu 106 242 segments du bassin du Tahoe à notre portable en 18,0 secondes. Voilà pourquoi un bâtisseur généraliste comme omf-bifrost peut exister sous la forme d'un simple CLI Rust : une distribution stable, versionnée, découpable par région a fait de la construction un projet d'un weekend plutôt qu'un trimestre d'équipe plateforme.
La franchise a ici plus de place qu'ailleurs dans ce billet. Nous n'avons aucun temps de construction à publier, parce que nous ne le possédons pas encore, et ceci est un carnet de terrain sur un outil jeune, pas un benchmark. omf-bifrost est en pré-1.0. C'est quelque chose que vous exécutez et rafistolez pendant que les bords se polissent. Un bouton n'existe à aucun étage de cette pile, et prétendre le contraire est la manière dont les outils jeunes déçoivent.
Le schéma des segments porte plus de structure que la plupart des chaînes à balises ne lisent
OpenStreetMap vous donne une voie et un sac de balises, puis laisse les opinions à votre filtre. Nous l'avons vécu : notre premier filtre de graphe de sentiers faisait confiance à chaque highway=track jusqu'à ce que le routeur recommande des chemins forestiers à des gens en chaussures de course. Overture, à la release 2026-09-23.1, vous remet ces opinions pré-typées sur chaque segment.
Un subclass arrive avec des subclass_rules qui le scopent par value ou par between, au lieu d'une balise unique que chacun interprète à sa guise. speed_limits porte un plancher, un plafond et une unité, donc un segment à 55 mph ne peut pas être relu en silence comme des km/h à l'autre bout du continent. Le schéma porte aussi access_restrictions, prohibited_transitions et destinations, puis road_surface et road_flags pour la vérité physique du revêtement. Champs tels que documentés pour cette release, imbrication simplifiée, valeurs illustratives :
{
"id": "…",
"subtype": "road",
"class": "residential",
"speed_limits": { "min": 15, "max": 55, "unit": "mph" },
"road_surface": "paved",
"access_restrictions": [],
"prohibited_transitions": [],
"destinations": []
}
La structure déplace le débat. Sur OpenStreetMap, les opinions vivaient dans notre filtre, et les nôtres étaient fausses de manières que seul le routage nous a apprises. Sur Overture, elles arrivent versionnées dans le schéma, et il ne reste plus qu'à décider si vous les partagez. On ne règle pas un désaccord en ajoutant une balise que le schéma ignore. Une colonne typée rend le désaccord visible à un endroit au lieu de le semer dans le code du filtre, ce qui est un vrai progrès, et un endroit n'est toujours pas zéro endroit.
Le graphe s'amincit d'abord aux frontières, restrictions et virages
La connectivité est la classe de panne que nous connaissons le mieux, parce que nous en avons produit une cousine nous-mêmes. Le billet d'août raconte comment supprimer des voies motorisées en gardant leurs nœuds de croisement a laissé des trous que le routeur comblait avec des lignes droites qu'il n'avait aucune légitimité à tracer. Les segments Overture portent un tableau connectors, et un graphe n'est fort qu'à hauteur de la topologie que ces connecteurs partagent. Un bord mince entre deux contributions a un symptôme discret : un itinéraire qui fait un détour autour d'un pâté de maisons sans raison visible sur aucune carte. L'audit est celui que nous menons déjà sur notre propre graphe. Compter les composantes connexes, entrer dans les plus grands trous, et refuser de promettre une couverture tant que les pièces ne se recollent pas.
Les restrictions viennent ensuite. access_restrictions est une colonne typée, et une colonne typée n'est complète que le sont les gens qui l'ont remplie. La couverture suit l'histoire des contributions, qui n'a jamais été uniforme sur un continent. Comptez les restrictions de votre région avant de promettre quoi que ce soit à un client ; avec l'élagage par bbox, la requête coûte des secondes, et un comptage honnête vaut mieux qu'une promesse de couverture rétractée en semaine trois.
Les virages pour finir. Le schéma porte prohibited_transitions, et un routeur privé de ses interdictions de tourner produit des itinéraires légaux sur le papier et illégaux au coin de la rue. Ce qu'omf-bifrost en fait pendant la construction Valhalla est le genre de question à laquelle un dépôt pré-1.0 répond mieux dans son tracker d'issues que dans sa documentation, et nous ne l'avons pas encore soumis à une région dense en interdictions. Rester non-testé vaut mieux que survendu, ici comme ailleurs.
Ce qu'un instantané ne peut pas être
La comptabilité honnête, limites d'abord. omf-bifrost est un outil en pré-1.0, pas un service de routage géré : personne n'est de garde pour votre graphe, donc l'épinglage de release, l'épinglage de Valhalla et le calendrier de reconstruction sont à vous. Tout comme le map-matching, l'étape qui décide à quel segment un point GPS appartient, et cette étape n'arrive avec les années de réglage d'aucun fournisseur. L'instantané est un instantané : pas de trafic, pas de vitesses historiques, pas de flux vivant d'aucune sorte, à aucune release, sur aucun étage de la pile.
Nos parades ensuite, parce que ce sont elles qui portent le poids. Quand le SLA d'un client nomme des temps de réponse, nous accouplons un graphe construit depuis Overture à un service de trafic vivant, en gardant les deux réponses séparées dans le produit : votre propre graphe répond du légal, le flux répond du délai. Nous avons soutenu dans un billet précédent sur le choix de fournisseur que le flux de trafic vivant est précisément la substance qu'aucune couche d'abstraction ne porte. Quand aucun SLA l'exige, nous planifions la reconstruction, publions l'identifiant de release à côté de l'itinéraire, et laissons une carte honnête vieillir en public.
Un graphe que vous avez construit vous dit de quelle release il vient. Un flux ne vous dit rien de son âge, et appelle ce silence de la fraîcheur.
Construisez le graphe quand la reproductibilité se vend, achetez le flux quand la latence compte
Une décision, formulée pour qu'on puisse la discuter. Si la promesse de votre produit est un itinéraire que vous pouvez expliquer six semaines plus tard en réunion, daté, auditable, inchangé, la pile Overture vaut une semaine de pilote ce mois-ci, et le pire cas est de perdre cette semaine. Si la promesse est l'heure d'arrivée la plus rapide dans le trafic du vendredi soir, achetez le flux, parce qu'aucune release ne le portera. Là où la légalité, la maîtrise des coûts et la capacité de pointer la version exacte des données comptent plus que la congestion vivante, construisez le graphe : 106 242 segments pour un bassin en 18,0 secondes, et chaque décision suivante avec une piste écrite.
AngoraTek construit des graphes de routage sur OpenStreetMap et évalue Overture release par release. [Posez-nous votre question de routage](/fr/#contact).Merci d'avoir lu jusqu'ici. Si cela ressemble au problème sur lequel vous butez, parlez-nous-en. Un fondateur lit chaque message.
Engager la conversation