Un itinéraire légal dans un pays peut être illégal de l'autre côté de la frontière à la même heure. C'est le piège discret du transport longue distance européen : la conduite est continue, mais le règlement change à chaque fois que le camion franchit une ligne. Interdictions de circuler le week-end et la nuit, interdictions sectorielles sur les corridors de transit alpins, zones à faibles émissions au cœur des villes, limites de poids et de gabarit pays par pays, restrictions saisonnières — aucune n'apparaît sur une appli de navigation grand public, et chacune porte une sanction bien réelle quand on l'apprend à la dure : une amende, une attente forcée sur le bas-côté, ou un chargement refoulé à la frontière.
Nous en avons parlé comme l'un des cinq problèmes de données routières que rencontre toute flotte transfrontalière européenne. Cet article en est la version détaillée : à quoi ressemblent réellement les données quand vous cessez de maintenir vingt-sept scrapers de règles nationaux pour interroger un seul schéma normalisé — et comment les restrictions d'un corridor reviennent attachées à l'itinéraire, et non comme un devoir à part.
Le besoin n'est pas « chaque règle d'Europe »
Il est plus étroit et plus utile que cela. Un répartiteur ne veut pas une encyclopédie interrogeable de chaque réglementation nationale ; il veut connaître les restrictions et les panneaux sur ce corridor, pour ce camion, avant que le conducteur n'y arrive. C'est une question spatiale, et c'est la forme à laquelle NAPSPAN répond.
Deux types de features normalisés la portent, tous deux interrogés depuis le même endpoint /features que parle le reste de l'API :
truck_restrictions— les limites et interdictions de poids, hauteur, largeur, longueur et d'accès qui s'appliquent aux poids lourds, issues des flux nationaux officiels.signs— la signalisation routière, panneaux à message variable (VMS/DMS) compris : le texte en direct qu'affiche un portique, normalisé pour qu'un panneau allemand et un panneau autrichien se lisent de la même façon dans votre code.
Les deux sont filtrables par jurisdiction et par cadre géographique, et les deux relèvent des groupes de features trucking et infrastructure, que vous pouvez parcourir avec GET /features/groups. Un seul schéma pour une interdiction de nuit allemande et une interdiction sectorielle autrichienne, c'est vérifier un seul endroit au lieu de vingt-sept.
Les restrictions d'un corridor, par cadre géographique
Demandez les restrictions poids lourds dans un cadre géographique, pour un pays. Voici un tronçon de route principale lettone :
curl -H "X-API-Key: $KEY" \
"https://api.napspan.com/api/v1/features?type=truck_restrictions&jurisdiction=LV&bbox=21.0,56.9,24.2,57.3"
Chaque ligne est un feature normalisé : coordonnées, la route sur laquelle il se trouve, et un objet properties portant les limites qui comptent pour un poids lourd. Les champs de limite sont exactement ceux contre lesquels un profil de camion est vérifié — max_weight_t, max_height_m, max_width_m, max_length_m :
{
"data": [
{
"id": "lv-restr-p128-0042",
"source": "lv",
"jurisdiction": "LV",
"feature_type": "truck_restrictions",
"name": "P128 weight restriction",
"latitude": 57.0891,
"longitude": 23.1140,
"road_name": "P128",
"is_active": true,
"properties": {
"restriction_type": "weight",
"max_weight_t": 7.0,
"description": "7 t weight limit"
},
"last_updated": "2026-07-06T21:10:00Z",
"has_details": false
}
],
"total": 230, "limit": 100, "offset": 0, "has_more": true
}
Remplacez type=truck_restrictions par group=trucking et le même appel se déploie sur neuf couches poids lourds à la fois — restrictions, limites de poids, gabarits de ponts, stationnement, aires de repos, stations de pesage et de contrôle —, si bien qu'une seule requête peint tout le tableau poids lourds pour un cadre géographique.
Les panneaux à message variable
Le type signs porte la signalisation routière, et pour les portiques VMS/DMS cela inclut le message actuellement affiché. Interrogez-le de la même façon — par pays, par cadre géographique :
curl -H "X-API-Key: $KEY" \
"https://api.napspan.com/api/v1/features?type=signs&jurisdiction=AT&bbox=9.5,46.4,17.2,49.0"
{
"data": [
{
"id": "at-vms-a13-brenner-07",
"jurisdiction": "AT",
"feature_type": "signs",
"name": "A13 Brenner VMS",
"latitude": 47.0620,
"longitude": 11.5083,
"road_name": "A13",
"direction": "southbound",
"is_active": true,
"properties": {
"message": "LKW ÜBERHOLVERBOT",
"sign_type": "VMS",
"posted_at": "2026-07-06T20:55:00Z"
},
"last_updated": "2026-07-06T21:00:00Z",
"has_details": true
}
],
"total": 3120, "limit": 100, "offset": 0, "has_more": true
}
Le sign_type distingue les portiques VMS/DMS de la signalisation statique, et message est le texte normalisé, pour que vous n'ayez pas à analyser une charge utile différente par pays. Le flux de panneaux vient directement des points d'accès nationaux — la publication VMS DATEX II de l'ASFINAG en Autriche, la DGT en Espagne, Digitraffic en Finlande, et d'autres —, replié dans cette forme unique.
L'essentiel : les restrictions suivent l'itinéraire
Interroger un cadre géographique, c'est la voie manuelle. Celle qui change la journée d'un répartiteur, c'est que les restrictions poids lourds reviennent attachées à l'itinéraire lui-même. Envoyez une requête de routage normale à POST /api/v1/routing/route avec le profil du camion, et les restrictions du corridor arrivent dans le canal warnings[] — pas de second appel, pas de jointure spatiale distincte de votre côté.
Et ce n'est pas un déversement de données. Le moteur compare chaque restriction au camion que vous avez réellement envoyé et n'avertit que lorsque votre véhicule dépasse la limite, un avertissement par dimension, pour que le répartiteur voie exactement quelle mesure pose problème :
{
"warnings": [
{
"type": "truck_restriction",
"severity": "critical",
"title": "Truck weight restriction",
"description": "weight limit 7t; your truck is 40t.",
"distance_along_route_m": 184300,
"projected_arrival_time": "2026-07-08T18:40:00Z",
"valid_from": "2026-07-08T22:00:00Z",
"valid_to": "2026-07-09T05:00:00Z",
"source": "lv",
"source_id": "lv-restr-p128-0042",
"geometry": { "type": "Point", "coordinates": [23.1140, 57.0891] }
}
]
}
Tout ce dont un répartiteur a besoin pour agir tient dans cet objet : ce qu'est la restriction, où sur l'itinéraire elle tombe (distance_along_route_m), quand le camion devrait l'atteindre (projected_arrival_time) et — quand la source publie une fenêtre de validité — si elle est même en vigueur à cette heure (valid_from / valid_to). Une interdiction de nuit que le camion atteint à 18 h 40 mais qui ne mord qu'à partir de 22 h est une décision bien différente d'une interdiction déjà en vigueur — et la réponse vous permet de les distinguer.
Cela circule sur la même requête que les coûts de péage du corridor et la planification des pauses au titre du 561/2006. Une requête transfrontalière — disons LV → PL → DE — renvoie un itinéraire poids lourds praticable, les restrictions qui l'arrêteraient, où le conducteur doit légalement faire sa pause, et ce que la tournée coûte en péages : le tableau opérationnel avant que le camion ne roule, pas après l'amende.
Ce qu'il faut attendre des données
Quelques notes honnêtes pour que la couverture se comporte comme vous l'attendez :
- La couverture est par NAP et croît. Aujourd'hui, la couche normalisée
truck_restrictionsest en service pour des pays dont la Lettonie et la France, et la couchesigns/VMS pour l'Autriche, l'Espagne, la Finlande, la Slovénie et la Lettonie — d'autres points d'accès nationaux s'intégrant aux deux mêmes types de features à mesure que nous les câblons. InterrogezGET /api/v1/features/typespour les décomptes en direct par type avant de développer pour un pays. - Les fenêtres de validité viennent de la source. Les interdictions saisonnières, de week-end et de nuit apparaissent en
valid_from/valid_toquand le flux amont les horodate. Là où une source publie une restriction comme un inventaire permanent sans horaires, traitez-la comme toujours applicable plutôt que de supposer une fenêtre. - Les restrictions routent ; les panneaux s'interrogent. Les restrictions poids lourds suivent l'itinéraire dans
warnings[]automatiquement. Les VMS/panneaux ne font pas partie de l'enrichissement de routage — récupérez-les pour un corridor avec une requêtebboxsurtype=signs, calée sur le cadre géographique de l'itinéraire. - C'est une donnée d'entrée de planification. Les données sont conçues pour la répartition et la planification avant départ. Elles affinent le plan ; elles ne remplacent pas l'obligation du conducteur de respecter le panneau devant lui.
Le fil conducteur
Chaque autorité nationale publie ses restrictions et ses panneaux à sa façon, selon son calendrier, sous sa propre licence. Relier tout cela à un itinéraire et le tenir à jour est soluble en interne — et, résolu en interne, cela devient un engagement de maintenance permanent qui concurrence le produit que vous vendez réellement. NAPSPAN fait cette agrégation une fois et vous remet un schéma normalisé : interrogez un cadre géographique, ou envoyez un itinéraire et récupérez les restrictions dessus, filtrables par pays, servies depuis l'Europe, chaque source classée par licence avant sa mise en service.
Essayer
- Documentation API —
/featuresavectype,group,jurisdictionetbbox, ainsi quePOST /routing/route - Carte en direct — voir les restrictions et les panneaux normalisés sur les NAP européens
- Clé API gratuite — sans carte, essai de 14 jours
Connaissez l'interdiction avant la frontière, pas à la frontière
Les restrictions poids lourds nationales et les panneaux à message variable, normalisés dans un seul schéma — interrogeables par pays et par cadre géographique, et remontés automatiquement sur votre itinéraire. Essai gratuit de 14 jours. Sans carte.
Obtenir une clé API gratuite Lire la documentation