Skip to content

Analyse de l'existant

Mathieu MARCHOIS edited this page Mar 7, 2023 · 7 revisions

Cette page synthétise les recherches techniques sur la modélisation existante, que ce soit pour les schémas de données standardisés ou les schémas attendus par les calculateurs d'itinéraires.

Standards et précédents

DATEX II

Site web | Documentation | Webtool | Introduction vidéo

Généralités

DATEX II est un standard européen d'échange de données relatives au trafic routier. Il est né dans les années 90 du besoin de standardiser l'échange de données au niveau européen pour des besoins opérationnels notamment (autoroutes, centres de régulation routière, opérateurs routiers, etc). Il a évolué jusqu'à aujourd'hui.

Il est par exemple utilisé par TomTom pour mettre à disposition des données d'incidents routiers, ou par HERE pour une API "avancée" de données de trafic routier.

Son échelle est européenne et son périmètre englobe l'ensemble du réseau routier. DATEX II est donc très complet et très détaillé. Il recouvre bien plus que la réglementation de circulation.

Il faut donc en choisir un sous-ensemble pertinent pour le périmètre choisi, par exemple la diffusion d'arrêtés de circulation pour travaux.

Outils

  • Webtool - Permet de générer un sous-schéma, au format XML ou JSONSchema.

    Utile pour générer des fichiers JSONSchema (choisir les packages Common, Situation et TrafficRegulation) et explorer le modèle de données dans un éditeur de texte.

Structure du modèle de données

Le modèle de données est structuré "à l'ancienne", en packages et en classes. Il a vraisemblablement été conçu pour être utilisable avec les outils de l'écosystème Java, en vogue à l'époque de la création du standard. Néanmoins la spécification reste agnostique.

Le modèle de données est fortement normalisé : nombreuses entités imbriquées les unes dans les autres (nested).

En pratique, un message dit "au format DATEX II" est une arborescence XML contenant un noeud payloadPublication :

<d2LogicalModel modelBaseVersion="1.0">
  <payloadPublication>
    <!-- ... --->
  </payloadPublication>
</d2LogicalModel>

Le contenu acceptable d'un noeud payloadPublication est défini dans les différents packages.

Il y a 4 packages notables :

SituationPublication - Evénements routiers

Pour un événement routier, appelé SituationPublication, le noeud payloadPublication contiendra un noeud enfant situation. Ce noeud situation contiendra lui-même un ou plusieurs noeuds situationRecord.

Ce type de message peut être intéressant car l'événement routier peut être causé par des travaux (roadworks).

Voici un exemple de SituationPublication tiré de la documentation TomTom. Il décrit un cas de circulation anormalement lente (18 km/h), en voie de congestion et occasionnant un retard de 1min34s (94s) le 12 décembre 2015 à 9h03 sur le segment de route identifié par la référence OpenLR CweksCU8dxt9DP8AAmQcSRE= (visualiser avec TomTom OpenLR Decoder : c'est une route en sortie du village de Hattorf, en Allemagne).

<d2LogicalModel modelBaseVersion="1.0">
  <exchange>
    <supplierIdentification>
      <country>nl</country>
      <nationalIdentifier>TomTom Traffic Service</nationalIdentifier>
    </supplierIdentification>
  </exchange>
  <payloadPublication xsi:type="SituationPublication" lang="en">
    <publicationTime>2015-12-14T12:09:03Z</publicationTime>
    <publicationCreator>
      <country>other</country>
      <nationalIdentifier>a557f357-4196-4f7f-8002-8c8aa0e18193</nationalIdentifier>
    </publicationCreator>
    <situation id="TTI-a557f357-4196-4f7f-8002-8c8aa0e18193-TTL119738232499376">
      <headerInformation>
        <confidentiality>internalUse</confidentiality>
        <informationStatus>real</informationStatus>
        <urgency>urgent</urgency>
      </headerInformation>
      <situationRecord xsi:type="AbnormalTraffic" id="TTI-a557f357-4196-4f7f-8002-8c8aa0e18193-TTL119738232499376-1">
        <situationRecordCreationTime>2015-12-14T12:09:03Z</situationRecordCreationTime>
        <situationRecordVersion>1</situationRecordVersion>
        <situationRecordVersionTime>2015-12-14T12:09:03Z</situationRecordVersionTime>
          <situationRecordFirstSupplierVersionTime>2015-12-14T12:09:03Z</situationRecordFirstSupplierVersionTime>
        <probabilityOfOccurrence>probable</probabilityOfOccurrence>
        <validity>
          <validityStatus>definedByValidityTimeSpec</validityStatus>
          <validityTimeSpecification>
            <overallStartTime>2015-12-14T12:09:03Z</overallStartTime>
            <overallEndTime>2015-12-14T12:29:03Z</overallEndTime>
          </validityTimeSpecification>
        </validity>
        <impact>
          <delays>
            <delayTimeValue>94.0</delayTimeValue>
          </delays>
        </impact>
        <groupOfLocations>
          <locationContainedInGroup xsi:type="Linear">
            <locationExtension>
              <openlr>
                <binary version="3">CweksCU8dxt9DP8AAmQcSRE=</binary>
              </openlr>
            </locationExtension>
          </locationContainedInGroup>
        </groupOfLocations>
        <situationRecordExtension>
          <alertCEventCode>115</alertCEventCode>
        </situationRecordExtension>
        <abnormalTrafficType>slowTraffic</abnormalTrafficType>
        <trafficTrendType>trafficBuildingUp</trafficTrendType>
        <abnormalTrafficExtension>
          <averageSpeed>18.0</averageSpeed>
        </abnormalTrafficExtension>
      </situationRecord>
    </situation>
  [...]
  </payloadPublication>
</d2LogicalModel>

TrafficRegulationPublication - Réglementation de circulation

Dans un message de type TrafficRegulationPublication, qui modélise une réglementation de circulation s'appliquant sur une période et un lieu donné, le noeud payloadPublication contient un noeud trafficRegulation.

La réglementation peut provenir de sources diverses. Parmi ces sources, on trouve trafficRegulationFromCompetentAuthorities, qui modélise une réglementation "issue d'autorités compétentes". Un tel noeud contient un ou plusieurs noeuds trafficRegulationOrder, modélisant des arrêtés de circulation.

À noter :

  • La modélisation intègre la possibilité que la validité et la localisation diffèrent entre l'arrêté et la réalité (validityByOrder vs implementedValidity), par exemple à l'issue de négociations locales.

Exemple (fictif) :

<d2LogicalModel modelBaseVersion="1.0">
  <payloadPublication>
    <trafficRegulation>
      <trafficRegulationFromCompetentAuthorities>
        <trafficRegulationOrder>
          <description>Arrêté N° ABC d'une certaine date</description>
          <issuingAuthority>Mairie de Savennay (44)</issuingAuthority>
          <reason>roadworks</reason>
          <regulationId>un identifiant unique</regulationId>
          <status>madeAndImplemented</status>
          <validityByOrder>
            <!-- Noeud `Validity` décrivant la validité définie par l'arrêté -->
          </validityByOrder>
          <implementedValidity>
            <!-- Noeud `Validity` décrivant la validité effective -->
          </implementedValidity>
          <locationByOrder>
            <!-- Noeud `LocationReference` décrivant la localisation géographique définie par l'arrêté -->
          </locationByOrder>
          <implementedLocation>
            <!-- Noeud `LocationReference` décrivant la localisation géographique effective -->
          </implementedLocation>
          <trafficRegulation>
            <!-- Description de la réglementation -->
            <!-- NB: Il peut y avoir plusieurs noeuds de ce type -->
          </trafficRegulation>
          <legalBasis>
            <!-- Pourrait contenir les "Vu ..." sauf que DATEX II n'autorise qu'une seule `legalBasis` -->
            <name>Loi machin-bidule du Code Civil</name>
            <date>1987-08-03</date>
          </legalBasis>
        </trafficRegulationOrder>
      </trafficRegulationFromCompetentAuthorities>
    </trafficRegulation>
  </payloadPublication>
</d2LogicalModel>

En savoir plus

Consulter la documentation en prose de DATEX II :

Explorer le standard au format JSONSchema : voir DATEXII_3_Profile.zip.

Ce fichier a été obtenu comme suit :

  • Accéder au Webtool
  • "1. Source" - Choisir DATEX II v3.3 ou v3.2.
  • "2. Selection file" - Cliquer sur Next.
  • "3. Profile selection" - Choisir par exemple "C. SRTI" (Safety-Related Traffic Information).
    Pour mémo :
  • "4. Profile Location" - Choisir par exemple PointLocation et LinearLocation (événements ou réglementation concernant des lieux ponctuels ou des routes).
  • "5. Sélection" (Après un temps de chargement) Cocher SituationPublication et TrafficRegulationPublication.
  • "6. Options" Choisir JSON Schema.

GTFS

Site web | Flux d'exemple | Référence

General Transit Feed Specification

Standard de facto pour les horaires de transport en commun et les données géographiques associées. Se décompose en GTFS statique (= GTFS) et GTFS-realtime. Un flux GTFS statique expose des données dans des fichiers CSV, tandis qu'un flux GTFS temps réel les expose par protocol buffers.

GTFS statique ne couvre pas le champs de la réglementation.

GTFS temps réel permet de publier des Alert (voir gtfs-realtime.proto). Une alerte décrit un incident ayant une Cause, par exemple CONSTRUCTION, et un Effect (impact), par exemple NO_SERVICE (arrêt non-desservi). Il n'est pas fait mention de la réglementation dans cette modélisation.

CEREMA

data.gouv.fr | Schéma sur GitHub | Espace arrêtés - Fablog (Open Data France)

Schéma sur les arrêtés permanents de circulation en ville pour le transport de marchandises.

Modèle de données

Propriété Type Description Obligatoire
ID chaîne de caractères Identifiant de l'entité (ex: 18087729-6f26-45f5-acdc-25beebf8ff2b) Oui
COLL_NOM chaîne de caractères Nom de la collectivité (ex: Commune d'Aix-en-Provence) Oui
COLL_INSEE chaîne de caractères Code INSEE de la commune (ex: 13090) Oui
ARR_DATE date (format %Y-%m-%d) Date de l'arrêté (ex: 2022-10-25) Oui
ARR_REF chaîne de caractères Référence de l'arrêté (ex: AP-13090-12) Oui
ARR_OBJET chaîne de caractères Objet ou titre de l'arrêté (ex: Arrêté règlementant la circulation dans le quartier Mazarin et du palais de Justice) Oui
ARR_CONSIDERANT chaîne de caractères Considérant de l'arrêté (ex: Considérant la dangerosité que représente le trafic des PL aux abords des groupes scolaires) Non
ARR_URL chaîne de caractères (format uri) Adresse internet de l'arrêté (ex: https://carte.st-paul-les-dax.fr/wp-content/uploads/2020/06/AM-10248.pdf) Non
REGL_ARTICLE chaîne de caractères Article du règlement (ex: Article 4) Non
REGL_SOUS_ARTICLE chaîne de caractères Sous-article du règlement (ex: Sous-article 4 bis) Non
REGL_CONTEXTE chaîne de caractères Contexte, motif, commentaire libre (ex: Forte affluence, marché) Non
REGL_MODALITE chaîne de caractères Indique si l'arrêté interdit ou autorise (ex: Autorise) Oui
VEH_TYPES chaîne de caractères Types de véhicules (Poids lourds | Véhicules utilitaires légers | Vélo-cargos | Tous véhicules) Non
VEH_TONNAGE_MODALITE chaîne de caractères Indication sur le tonnage minimal ou maximal (jusqu'à | à partir de) Non
VEH_TONNAGE nombre réel Tonnage du véhicule (ex: 9) Non
VEH_USAGES chaîne de caractères Types d'usage de véhicule (ex: Bennes à ordures ménagères) Non
SAUF_VEH_USAGES chaîne de caractères Exceptions sur les usages acceptés ou interdits (ex: Véhicules de livraison) Non
VEH_LONG nombre réel Longueur maximale exprimée en mètres (ex: 15) Non
VEH_LARG nombre réel Largeur maximale exprimée en mètres (ex: 3.5) Non
VEH_HAUT nombre réel Hauter maximale exprimée en mètres (ex: 2) Non
VEH_MOTORS chaîne de caractères Types de motorisation (ex: électrique, hydrogène, thermique) Non
VEH_CQAS chaîne de caractères Vignettes crit'air (ex: 1|2|3) Non
PERIODE_JH chaîne de caractères Jours et heures de circulation autorisés pour la circulation exprimés selon le format OpeningHours d'OpenStreetMap. (ex: Mo-Fr 08:00-12:00,13:00-17:30; Sa 08:00-12:00; PH off) Non
PERIODE_DEBUT chaîne de caractères Entrée en vigueur des restrictions (ex: 'Début des vacances de la Toussaint' ou '23 Octobre') Non
PERIODE_FIN chaîne de caractères Fin des restrictions (ex : 'Fin des vacances de la Toussaint' ou '8 Novembre') Non
EMPRISE_ZONE chaîne de caractères Zone associée à l'emprise (ex: Quartier du centre ville) Non
EMPRISE_DESIGNATION chaîne de caractères Nom de la voie, ou de la zone associée. La zone peut être une aire piétonne, un quartier, une zone ZFE (voir le schéma des ZFE) (ex: Avenue Philippe Solari, Commune d'Aix-en-Provence, Quartier Mazarin, 200046977-ZFE-001) Oui
EMPRISE_DEBUT chaîne de caractères Indication textuelle de l'endroit à partir duquel la règlementation s'applique, telle qu'écrite dans l'arrêté. Pour indiquer les coordonnées GPS, se référer au champ GEOM_DEBUT. (ex: 22 avenue Philippe Solari, Croisement de l'avenue Philippe Solari avec la rue Gaston de Saporta) Non
EMPRISE_FIN chaîne de caractères Indication textuelle de l'endroit au bout duquel la règlementation s'applique, telle qu'écrite dans l'arrêté. Pour indiquer les coordonnées GPS, se référer au champ GEOM_FIN. (ex: 34 bis avenue Philippe Solari, Intersection de l'avenue Philippe Solari avec le boulevard des Charmettes) Non
EMPRISE_SENS chaîne de caractères Direction ou sens de circulation associé à la règlementation (ex: Dans le sens boulevard Maréchal Foch) Non
INTERV_DUREE heure Durée maximale d'intervention (ex: 03:00:00) Non
INTERV_HMAX heure Heure maximale d'intervention (ex: 22:00:00) Non
GEOM_WKT chaîne de caractères Géométrie de la rue (ligne), ou de l'emprise (polygone) exprimée au format WKT (Well Know Text sous le système de projection WGS84 (EPSG:4326) (ex: LineString(5.39340184 45.56538751, 5.41017215 45.56722934, 5.42510063 45.5679079)) Non
GEOM_DEBUT point géographique Coordonnés GPS du début de la section (ex: 5.42101,43.53591) Non
GEOM_FIN point géographique Coordonnés GPS de la fin de la section (ex: 5.42101,43.53591) Non
GEOM_SOURCE chaîne de caractères Source de la donnée depuis laquelle la donnée a été extraite (OpenStreetMap, IGN,...). (ex: BDTOPO IGN 2021) Non

Plus d'informations sur le modèle de données.

ZFE

Les jeux de données d'une ZFE doivent être au format GeoJSON encodé en UTF8.

Le référentiel à suivre pour la production des données est le Référentiel Grande Echelle de l'IGN. Le système de projection retenu est le WGS 84 (code EPSG 4326 en 2D) comme le recommande le standard GeoJSON. Les tronçons routiers exceptionnels doivent être extraits de la couche TRONCON_DE_ROUTE de la BD Topo de l'IGN.

Propriétés de réglementation

Propriété Type Description Obligatoire
id string Identifiant unique de l'aire réglementée (ex: 200046977-ZFE-001) Oui
date_debut date Date d'entrée en vigueur de la réglementation (ex: 2019-07-01) Oui
date_fin date Date de fin de la réglementation (ex: 2019-07-01) Non
vp_critair string Véhicules particuliers : Vignette CRITAIR à partir de laquelle la circulation n'est pas autorisée (V1|V2|V3|V4|V5|EL|EC) Oui si vp_horaires
vp_horaires string Véhicules particuliers : jours et horaires de restriction au format opening hours d'OpenStreetMap (ex: "Mo-Fr 08:00-20:00; PH off", "24/7") Oui si vp_critair
vul_critair string Véhicules utilitaires légers : Vignette CRITAIR à partir de laquelle la circulation n'est pas autorisée (V1|V2|V3|V4|V5|EL|EC) Oui si vul_horaires
vul_horaires string Véhicules utilitaires légers : jours et horaires de restriction au format opening hours d'OpenStreetMap (ex: "Mo-Fr 08:00-20:00; PH off", "24/7") Oui si vul_critair
pl_critair string Poids lourds (>3,5t) : Vignette CRITAIR à partir de laquelle la circulation n'est pas autorisée (V1|V2|V3|V4|V5|EL|EC) Oui si pl_horaires
pl_horaires string Poids lourds (>3,5t) : jours et horaires de restriction au format opening hours d'OpenStreetMap (ex: "Mo-Fr 08:00-20:00; PH off", "24/7") Oui si pl_critair
autobus_autocars_critair string Autobus et autocars : Vignette CRITAIR à partir de laquelle la circulation n'est pas autorisée (V1|V2|V3|V4|V5|EL|EC) Oui si autobus_autocars_horaires
autobus_autocars_horaires string Autobus et autocars : jours et horaires de restriction au format opening hours d'OpenStreetMap (ex: "Mo-Fr 08:00-20:00; PH off", "24/7") Oui si autobus_autocars_critair
deux_rm_critair string Deux roues, tricycles et quadricycles à moteur : Vignette CRITAIR à partir de laquelle la circulation n'est pas autorisée (V1|V2|V3|V4|V5|EL|EC) Oui si deux_rm_horaires
deux_rm_horaires string Deux roues, tricycles et quadricycles à moteur : jours et horaires de restriction au format opening hours d'OpenStreetMap (ex: "Mo-Fr 08:00-20:00; PH off", "24/7") Oui si deux_rm_critair
url_arrete uri Lien de l'arrêté administratif précisant la réglementation sur la zone Non
url_site_information uri Page web décrivant le dispositif et précisant la réglementation sur la zone ou sur le tronçon de route Non

Source etalab

Format GeoJSON

Exemple de format polygon :

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "type": "Polygon",
        "coordinates": [
          [
            [
              2.408554054441555,
              48.83481394970757
            ],
            [
              2.408554054441555,
              48.83481394970757
            ],
            // ...,
          ]
        ]
      },
    }
  ]
}

Exemple de format LineString:

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
       "geometry": {
           "type": "LineString",
           "coordinates": [
          [
            2.347820687176221,
            48.901125959356861,
            47.7
          ],
          [
            2.346996997726074,
            48.901107981549025,
            47.7
          ],
          [
            2.346241509012153,
            48.901090370366333,
            47.5
          ],
          [
            2.345509174938929,
            48.901075578895103,
            50.3
          ],
          [
            2.344756392565412,
            48.901059771759087,
            50.9
          ]
        ]
      }
    }]
}

Voir un exemple

Services numériques

Waze

Flux de données

Waze se base sur le protocole CIFS (Closure and Incident Feed Specification) pour décrire les incidents et les routes fermées. Le flux doit être au format JSON ou XML.

Élément Description Obligatoire
id Identifiant alphanumérique unique (ex: LND11DEayKr) Oui
type ROAD_CLOSED|ACCIDENT|CONSTRUCTION|HAZARD|POLICE|CHIT_CHAT|JAM|CAMERA Uniquement le type ROAD_CLOSED entrainera la fermeture complète d'une route. Oui
subtype Permet de spécifier avec plus de précision un type. Voir la liste complète des sous-types ici. Non
polyline Coordonnées de latitude et de longitude qui décrivent le lieu de l'incident. L'ordre des points reflète la direction de la circulation. Oui
direction BOTH_DIRECTIONS|ONE_DIRECTION Permet de spécifier si l'incident concerne un sens ou les deux. Non
street Indique le nom de la rue et doit correspondre à la carte Waze. Oui
starttime Indique la date de début de l'incident. (format ISO 8601) Oui
endtime Indique la date de fin de l'incident. Si auncune date n'est spécifiée, la valeur par défaut sera de 14 jours. (format ISO 8601) Non
lane impact Permet de spécifier, dans le cas de plusieurs voies, laquelle est impactée par l'incident Non
schedule Encapsule toutes les dates et heures de début et de fin de l'incident. Non

Pour plus d'informations, se référer à la documentation.

Contribution

Fichier XSD à respecter : https://www.gstatic.com/road-incidents/cifsv2.xsd

Google

Geo Data Upload - Travel Restrictions for Checkpoints, Road Closures, Border and Road Restrictions

Field Description Example
FROM_ID The ID (find the id column above of a road segment) of the segment where the turn restriction starts 14232514
FROM_END The start of the segment the turn restriction applies to relative to its geometry. Either "FROM" or "TO"
TO_ID The ID (find the id column of a road segment) of the segment where the turn restriction ends 14232599
TO_END The end of the segment the turn restriction applies to relative to its geometry Either "FROM" or "TO"
MODE The mode of transportation the limitation applies to. Either "ALL", "PEDESTRIAN", "CAR", "TRUCK", "BUS" or "NON-HOV"
START_TM The start time of the turn restriction, in 24-hour notation. Leave this and END_TM blank for permanent restriction 06:00
END_TM The end time of the turn restriction, in 24-hour notation. Leave this and START_TM blank for permanent restriction 10:00
TYPE Type of turn restriction Either "NO LEFT TURN", "NO RIGHT TURN" or "NO U-TURN"

Apple Maps

TomTom

Analyse d'arrêtés

Arrêt N° 2020P19283 de la commune de Paris

  • Article 1 : "Le transit dans Paris des véhicules affectés au transport de marchandises est interdit tous les jours, sauf sur le boulevard périphérique, les boulevards des Maréchaux et des voies transversales qui les relient"
  • Article 2 :
    • "La circulation dans Paris de véhicules de transport de marchandises dont la longueur est strictement supérieure à 16.5 mètres est interdite."
    • "La circulation, l'arrêt et le stationnement des véhicules affectés à la livraison ou à l'enlèvement de marchandises sur la voie publique et dont la longueur est strictement supérieure à 12 mètres et inférieure ou égale à 16.5 mètres sont interdits dans toutes les voies et emplacements aménagés sur le domaine public routier, hormis de 22 heures à 7 heures."
    • "La longueur à considérer pour les véhicules articulés est celle de la remorque et du véhicule tracteur."
  • Article 4 :
    • "[...] [L]es interdictions indiquées à l'article 2 du présent arrêté ne sont pas applicables aux véhicules suivants :
      • véhicules d'approvisionnement des marchés ;
      • véhicules effectuant des livraisons de farine ;
      • citernes ;
      • véhicules porte-voitures ;
      • véhicules de déménagement ;
      • véhicules transportant des matériaux destinés aux chantiers ou en provenant ;
      • véhicules destinés à l'entretien de la voirie ou à la collecte des déchets dans le cadre de leurs missions ;
      • véhicules de transports de fonds ;
      • véhicules effectuant du transport exceptionnel [...] et munis d'une autorisation préfectorale."
  • Article 5 : "Des dérogations exceptionnelles aux disposisitions du présent arrêté peuvent être accordées par le Préfet de Police [...]."
  • Article 7 : "L'arrêté municipal n° [...] et l'arrêté préfectoral n° [...] sont abrogés."

Arrêt de la commune de Carros, article 4

  • "Pour tous les autres véhicules, autocars et poids lourds, la circulation est également libre dans les deux sens dans toutes les artères de la ville sauf dérogations du chapitre III, et restrictions ci-après :

    1/ Poids limité
    L'accès est interdit aux véhicules dont le poids total en charge est supérieur à 19 tonnes, sauf aux véhicules de service, sur les voies suivantes :
    Toutes les rues du centre ville
    Chemin des BARAQUES
    Chemin de BONVILLARS
    Chemin de la CALADE
    [...]
    Bolevard COLLE BELLE
    Chemin de la CULASSE
    [...]"

Arrêt du 11 janvier 1979 de la commune de Le Rove

  • Article 1 : "La circulation des véhicules poids lourds de plus de 3 T 5 ainsi que ceux transportant des matières dangereuses est interdite dans la traversée du village dans la partie comprise entre la R.N. 568 B entrée Est par l'Avenue Jean Jaurès - Avenue Joliot Curie et Rue de Douard à l'Ouest."
  • Article 2 : "Par dérogation aux prescriptions susvisées, seuls les véhicules de plus de 3 T 5 effectuant des livraisons ainsi que ceux transportant du gaz ou des carburants destinés au ravitaillement des administrés seront autorisés à utiliser les voies de l'agglomération."
Clone this wiki locally