User:FR:Nadjita/Routes
Révision des itinéraires | |
---|---|
Statut: | Proposals with undefined or invalid status (inactive) |
Proposé par : | Nadjita |
Balisage : | segment=*, stage=*, stage:name=*, stage:name=*, label=* |
S’applique à : | |
Définition : | Cette proposition ajoute des attributs aux itinéraires et propose des règles qui permettront de les rechercher dans Nominatim et dans d'autres consommateurs de données. |
Rendu comme : | masqué |
Ébauché le : | 2023-06-26 |
S'applique à
Cette proposition ne s'applique qu'aux types d'itinéraires suivants : route=hiking, route=foot, route=bicycle.
Tous les itinéraires network:type=node_network sont explicitement exclus.
Proposition
L'objectif est de permettre à Nominatim d'effectuer des recherches sur les noms et les références des itinéraires sans perdre d'informations importantes. Pour cela, nous devons être plus stricts sur ce qui est autorisé dans ces deux attributs. Toutes les valeurs que cette proposition rendrait invalides dans les noms et références des itinéraires seront déplacées vers d'autres balises plus pratiques pour les consommateurs de données. Pour cela, la proposition introduit plusieurs nouveaux attributs, formalise l'attribut stage=* déjà existant, et prône la mise en œuvre de règles plus strictes.
Le nom et la référence de l'itinéraire doivent correspondre au nom et à la référence officiels et balisés de l'itinéraire. Ils ne doivent pas inclure d'attributs tels que to=*, from=*, stage:name=*, stage:description=*, ni description=*, segment=*, ni s'appuyer uniquement sur une référence ou un nom "largement utilisé". En outre, il est recommandé d’utiliser short_name=* pour traiter les noms d'itinéraires contenant des caractères problématiques.
L'introduction du nouvel attribut label=* peut être considéré comme discutable par certains, mais il semble être le meilleur compromis pour permettre la recherche de ref=* sans inventer quelque chose comme symbol:ref
ou similaire. Je pense sincèrement que les avantages d'un attribut général en valent la peine.
Motivations
Actuellement, Nominatim ne veut pas rechercher les noms et les références des itinéraires, parce que le nommage utilise toutes sortes de caractères différents qui ne seraient jamais trouvés, et parce que de nombreux noms et références d'itinéraires ne sont pas officiels, mais composés. Je veux donner aux cartographes les attributs dont ils ont besoin pour déplacer certains éléments qui sont couramment mis en correspondance dans le nom et la référence d'un itinéraire vers des attributs lisibles par la machine et convaincre Nominatim de rechercher les itinéraires par nom et référence.
En analysant des centaines d'itinéraires, j'ai remarqué que les noms d'itinéraires présentaient souvent ces erreurs :
- Les itinéraires qui n'ont pas de nom s'en voient attribuer un, en pensant qu'ils ne seront pas affichés sinon. Dans le passé, certains éditeurs n'affichaient pas non plus les relations sans nom, si bien que les gens donnaient des noms aux itinéraires, juste pour pouvoir les trouver.
- JOSM utilise l'ordre suivant pour l'affichage des relations : name, ref , description.
- L'ordre d'affichage des relations dans iD est le suivant : name, ref, from/to.
- Les itinéraires recevaient des références, même s'il n'y avait pas de référence officielle affichée sur les panneaux. Ceci a été fait pour que les cartes affichent l'itinéraire avec cette référence, au lieu d'un nom épouvantablement long. Il y a eu plusieurs discussions sur la question de savoir si les références devaient contenir uniquement les références officielles ou non, et comme il n'y a pas eu de consensus, les deux existent maintenant. A l'heure actuelle, il est impossible de savoir si la référence d'un itinéraire figure sur les panneaux ou non.
- Les itinéraires ont des attributs dans leur nom qui ne font pas réellement partie du nom :
- Ergänzungsroute (Itinéraire complémentaire)
- Alternativroute (Itinéraire alternatif)
- Abkürzung (Raccourci)
- (* Certains itinéraires ont été découpés en étapes, et toutes les étapes sont alors regroupées dans un super-itinéraire (superroue). En général, ces étapes sont "jour 1, étape 1", et ainsi de suite. Ces étapes sont également visibles dans le nom des itinéraires respectifs.
- Certains itinéraires sont connus sous plusieurs noms, mais les contributeurs mettent les deux noms dans l'attribut name=*, au lieu d'ajouter un attribut alt_name=*.
- De nombreux itinéraires utilisent des séparateurs que Nominatim aura du mal à trouver :
-
–
▶
→
<>
->
:
;
()
Attributs
L'itinéraire doit être décrit avec autant d'attributs que nécessaire. L'objectif est de ne conserver que le nom réel de l'itinéraire dans name=*, sa référence réelle dans ref=*, et de déplacer tous les éléments descriptifs vers d'autres attributs plus adaptés.
Règles générales
Règle | Définition |
---|---|
1. N'inventez pas de noms | Ne donnez pas de nom à l'itinéraire s'il n'en a pas. Ne mélangez pas ref=* avec name=*, ce ne sont pas les même choses ! Veillez bien à utiliser la bonne ref=*, à définir from=* et to=* et à ajouter une description=* à l'itinéraire afin d'en expliquer la raison. Il est tout à fait possible qu'un itinéraire n'ait pas de nom. Si aucun nom n'est visible sur les panneaux, veuillez utiliser noname=yes. |
2. N'inventez pas de références | Ne définissez pas un ref=* qui n'est pas présent sur les panneaux/balises/logos de l'itinéraire. Le nom d'un itinéraire n'est pas une référence ! Utilisez label=* pour aider les consommateurs de données à trouver une représentation courte du nom de l'itinéraire s'il n'y a pas de ref=* sur les panneaux. Il est tout à fait possible qu'un itinéraire n'ait pas de référence. Si aucune référence n'est visible sur les panneaux, veuillez utiliser noref=yes. |
3. Garder un nom correct | Ne mettez rien dans le nom d'un itinéraire qui n'en fait pas partie. to=*, from=*, stage:description=*, et stage:name=* n'ont pas leur place dans le nom d'un itinéraire. |
4. Utiliser les segments | Les super-itinéraires doivent utiliser les segments suivants comme rôle pour leurs membres : main , alternative , excursion , approach , et connection . Les membres sans rôle ont la valeur par défautmain . Il peut y avoir plusieurs itinéraires pour le même rôle.
Chaque itinéraire qui n'est pas l'itinéraire principal ou une partie de celui-ci, doit avoir un attribut segment=*. |
5. Caractères spéciaux | Chaque itinéraire contenant des caractères non alphabétiques dans son nom devrait avoir un short_name=* qui est une version courte sans ces caractères. |
6. Utiliser des étapes | Tout itinéraire découpé en plusieurs étapes doit utiliser la clé stage=* et/ou from=*/to=* pour décrire l'étape - et non l'intégrer au nom. Utilisez stage=* lorsque l'étape est découpée en étapes logiques (jour 1, 2, 3, par état/pays), sinon utilisez uniquement to=* et from=*. Utilisez stage:name=* si les étapes individuelles ont des noms. (Grand Départ, Königsetappe, Isle of Man, …) |
7. Noms de segments | Tout itinéraire faisant partie d'une superroute et n'étant pas l'itinéraire principal (ou une étape de celui-ci) ne doit pas avoir de nom, à moins qu'il ne soit explicitement balisé. Il est conseillé d'utiliser correctement description=*, from=* et to=*. |
8. Les attributs de la superroute correspondent à ceux de l'itinéraire principal | Les super-itinéraires doivent utiliser les attributs name=*, network=* et ref=* de l'itinéraire principal, y compris en les laissant vides, si l'itinéraire principal n’en a pas. |
9. rôle ou segment | Un itinéraire peut être un itinéraire complet en soi, tout en ayant un rôle différent dans une autre superroute. L'attribut segment=* de l'itinéraire reste vide, ou "main", tandis que le rôle dans le super-itinéraire est appliqué en conséquence. Cette pratique est courante pour les itinéraires de randonnée qui constituent une connexion au Chemin de Saint-Jacques, tout en étant des itinéraires de randonnée à part entière. (e.g. "Via Scandinavica" or "Pilgerweg Loccum - Volkenroda") |
New tag segment=*
The new tag segment=* is used to indicate the role of a route within a super-route, without requiring data-consumers to have knowledge of super-routes. Renderers are encouraged to visually differentiate non-main segments by using different styles such as dotted, dashed, or thinner lines. The permitted values for segment=* are the same as those for the role
in recreational routes. Keep in mind that a route can have different roles in different relations. In this case, if one role is main
, use this as a segment=*, otherwise use the most important one.
- segment=main
- This route is a main route or a part thereof
- segment=alternative
- This route is an alternative route, or a shortcut, that connects one node from the main route with another one. Make sure to add from=* and to=* as well as a description=*.
- segment=excursion
- This is a supplementary route that is not part of the main route. It usually leads to attractions that are too off-route to be on the main route, or have a different difficulty (more steep, special equipment needed, etc.)
- segment=approach
- This is a signposted way leading to the route itself, usually from a parking space, a train station, etc. Only put these into a separate route if it's a rather long approach. Otherwise, you can just add these ways to the main route with the role=approach instead.
- segment=connection
- This is a connection between 2 or more routes. Typically, it belongs to all connected routes, so putting this into its own route can save some work, because you will only have to add the connection-route to the superroutes, and not all of the connection's ways to the routes. Only map these connections, if they are explicitly signed - everything else is for the router to figure out.
Tag stage=*
This is not a new tag, but I wish to formally define it here. stage=* defines that a route is just a part of a route that has been cut into several stages and the value signalizes which stage we're in. Typically, these are one stage per day, sometimes also one stage per state, sometimes one stage per country, or one for the morning and one for the afternoon. This key only takes a numerical value that is optionally followed by a letter. If there are no official stages for a route, it is up to the mapper to decide whether and where to split. Common sense advised. When splitting on geographic criteria, consider using from=* and to=* instead of, or in addition to stage=*. The fact that this can lead to subjective stages is not necessarily bad, and especially if the mapper has local knowledge, can be a big advantage.
Wrong: stage=Day 1
Correct: stage=1
Correct: stage=1a
If you have multiple routes covering the same stage, either give them all the same stage=*-value, or add a
, b
, c
, and so on.
An example is a large route through the Netherlands that's been cut into 8 days (stages), but some of the stages have alternative routes. It's advised to tag the main route with stage=1, and the alternative routes either with stage=1, or stage=1a, and so on.
Data consumers can use the leading number for sorting, but must ignore anything starting with the first non-digit.
Caveat: If a route is a part of a superroute that contains two or more equally significant "main" routes (meaning they have equal importance, with no one route being more significant than the others), exercise caution when utilizing the stage=* tag. To ensure correct numbering, the two variants must be divided into an equal number of stages. An example of this is the "E2 European long distance path", which has two alternative midsections.
New tag stage:name=*
Use this if the stage of your route has an official name that is not part of the route's name. Some stages have separate, official names like "Mountain stage", "The big approach", and so on. Use this tag for these official names, not for something you made up yourself or "Day 7". This tag is meant to be searchable by Nominatim, and for being displayed by editor software, to make it easier to find the correct stage.
New tag stage:description=*
Use this if the stage of your route has no official name, and you need to describe it. If you cut a big hiking trail into one stage per state, you could put the state's name in here (stage:description=Kansas. Don't use stage:description=*, if stage=* is really just an arbitrary day's stage (Day 1, Part 1, and so on). This tag is not meant to be searchable by Nominatim, but to be displayed by editor software, to make it easier to find the correct stage.
New tag label=*
A label is essentially the short textual representation of a route's name, not to be confused with short_name=*. Usually, maps show the name of a route its ref, or a shortened form of the name. Because this proposal encourages to have an empty ref if there is no officially signed one, the data consumer is stuck with having to guess the short form of the name, or with no label at all, because the name/ref is empty. label=* is used to give a 2-5 letter label to routes that data consumers should use to display the route, if no ref=* is set.
An example of a cycle route where this is helpful, is the "Nordhannoversche Moorroute" (aka "Von Moor zu Moor"), which is signed like this:
There is no short ref available and relying on the data consumer to somehow process the two names "Nordhannoversche Moorroute" and "Von Moor zu Moor" into a meaningful short representation, is a gamble. We can help data consumers by giving them a label=Moor or label=VMZM.
This tag should be used by maps and routers, but only if there is no ref=* set.
When to use ref=* and when to use label=*?
Only use ref, when the ref is part of the official logo/image/markers that can be seen along the way. Everyone giving a route by a specific abbreviation is not a ref, but rather a label. In some countries (mainly Germany), it's not uncommon to make up a ref (see this discussion) if there is no official one. This proposal officially discourages this practise and lobbies for the use of label=* instead.
This signpost shows 6 different bicycle routes. The first 3 markers clearly show refs: Ds, Br and Mg. If you look closely, the next 2 also show refs: "EU 2" and "EU 3" as ref, but the last one (Badischer Weinradweg) clearly doesn't feature anything that could be a ref. In this case, you could use label=BW / label=BWR / label=BWRW to help finding a short representation, but it's optional. | |
This signpost has 2 routes. The first one is only marked by an image, so this clearly has no ref and no visible name either. It's called "Mittellandkanal" officially, so you can use that one as name=*, but as for a shortcut like ref=* or label=*: there is none. Make sure to add the logo, because that's what people will identify this by.
The second one has the words "Mittellandkanalroute", which is also no ref. Since the latter cannot be shortened easily by an algorithm, it's advisable to add label=MKR or something similar. | |
Here we have 2 bicycle routes: "Der Deisterkreisel" and "Fahrradregion Regionsring".
The frst one clearly hasn't got any visible ref, just a name. We could add label=DK to give it a good label. The second one shows the logo of the Hannover region, plus an "R" in the top right corner. This should be considered the ref for this route, so ref=R. The "Fahrradregion" at the bottom is part of the logo of similar routes and not part of the ref or label. | |
The 3 routes on the right are named "Feengrotten-Kyffhäuser-Weg" and "Weinbergsweg". None of these have a ref, so label=FKW and label=WB / label=WW / label=WBW along with the symbols is the only thing to tag. | |
This sign shows the hiking route "E2", aka "E2 European long distance path". Since the reference "E2" is clearly visible on the sign: name=E2 European long distance path + ref=E2 + short_name=E2 path
The cycle route "The National Byway" to Burford, however, does not have any visible reference. label=NB is a good fit here. | |
This is a rare case of all markers having a visible ref. On the upper bit of the sigh, the "Heideschleife Haverbeeke" has a nice ref=h. On the lower sign, we have ref=5, ref=7, ref=10, ref=17 and ref=W. You could add label=RB5, 7 and 10 for the first three, but not a must. |
Special case network:type=node_network
Explicitly not part of this proposal, but I wrote some suggestions how node network tagging could be improved while still adhering to the overall suggestions of this document.
Examples
Old | New |
---|---|
ref and name both don't match on the ground
name=Velo visavis Circuit cyclotouristique name:de=Velo visavis Rundweg name:fr=Velo visavis Circuit cyclotouristique network=rcn ref=VeloV route=bicycle type=route |
label=VeloV name=Velo visavis network=rcn roundtrip=yes route=bicycle type=route |
Alternative name is part of the name
description=Veloroute 2 führt…
from=Hannover City
name=Veloroute 2 - Radschnellweg Hannover-Langenhagen
network=lcn
ref=VR2
route=bicycle
to=Langenhagen
type=route
|
description=Veloroute 2 führt… from=Hannover City name=Veloroute 2 alt_name=Radschnellweg Hannover-Langenhagen network=lcn ref=VR2 route=bicycle to=Langenhagen type=route |
Segment, from and to inside the name
from=Hildesheim
name=Kulturroute Hannover, Alternativroute - Abkürzung zwischen Hildesheim und Sarstedt
network=rcn
ref=K
route=bicycle
to=Schliekum
type=route
|
description=Shortcut between Hildesheim und Sarstedt from=Hildesheim network=rcn noname=yes ref=K route=bicycle segment=alternative to=Schliekum type=route |
Stage is part of the name
description:en=The first stage leads… name=Von Moor zu Moor - Etappe 1 network=rcn ref=Moor route=bicycle type=route |
description:en=The first stage leads… from=Altwarmbüchen name=Von Moor zu Moor label=Moor network=rcn noref=yes route=bicycle stage=1 to=Bissendorf type=route |
Missing from/to and section part of the name. The route doesn't have a ref, it was just put there for the renderer. Name didn't match OTG description:en=Outer loop from the Grüner Ring… name=Grüner Ring - Außenschleife Sehnde-Laatzen network=lcn ref=GR route=bicycle type=route |
The sign only says Schleife Sehnde-Laatzen
description:en=Outer loop from the Grüner Ring… from=Anderten label=GR name=Schleife Sehnde-Laatzen network=lcn noref=yes route=bicycle segment=excursion to=Grasdorf type=route |
Stage and denomination are part of the name. To and from missing
name=Jakobsweg Via Scandinavica, Niedersachsen network=nwn pilgrimage=yes ref=Jw vS route=hiking type=route |
from=Lauenburg/Elbe label=VS name=Via Scandinavica network=nwn noref=yes pilgrimage=Camino de Santiago route=hiking stage=2 stage:description=Niedersachsen type=route to=Eisenach Alternatively, we can divide this rather huge route in daily stages like this: from=Lauenburg/Elbe label=VS name=Via Scandinavica network=nwn noref=yes pilgrimage=Camino de Santiago route=hiking stage=10 type=route to=Lüneburg |
British cycle networks are already in good condition
cycle_network=UK:National Cycle Network
name=NCN National Route 6
network=ncn
ref=6
route=bicycle
type=route
|
cycle_network=UK:National Cycle Network from=London name=National Cycle Route 6 network=ncn ref=6 route=bicycle short_name=NCR 6 to=Lake District type=route |
The 9-11 trail has been chopped into stages - one for each state
cycle_network=US:USA
name=9-11 Trail (Maryland)
network=ncn
ref=9-11
route=bicycle
type=route
|
cycle_network=US:USA alt_name=9/11 Trail name=September 11th National Memorial Trail network=ncn ref=9-11 route=bicycle short_name=NMT stage=1 stage:description=Maryland type=route |
Don't put the ref number into the name
hiking=yes
name=Willow Springs Bike Loop #535
network=rcn
ref=535
route=bicycle
type=route
|
hiking=yes
name=Willow Springs Bike Loop
network=rcn
ref=535
route=bicycle
type=route
|
Don't invent names
name=Ciclovía Temuco-Labranza
network=lcn
roundtrip=no
route=bicycle
type=route
|
from=Temuco network=lcn noname=yes roundtrip=no route=bicycle to=Labranza type=route |
To and from in the name
name=Nasjonal sykkelrute 1 (Moss–Bergen)
network=ncn
ref=1
route=bicycle
type=route
|
from=Moss name=Nasjonal sykkelrute 1 network=ncn ref=1 route=bicycle to=Bergen type=route |
stage and alt_name part of the name
cycle_network=EuroVelo
icn_ref=8
name=EuroVelo 8 - Mediterranean Route - part Spain 7
network=icn
ref=EV8
route=bicycle
state=proposed
type=route
|
cycle_network=EuroVelo icn_ref=8 name=EuroVelo 8 alt_name=Mediterranean Route stage=7 stage:description=Spain network=icn ref=EV8 route=bicycle state=proposed type=route |
section_ref and main route part of the name
name=Floris V-pad 9h, Variant Hoog water network=nwn operator=Wandelnet ref=LAW 1-3 route=hiking section_ref=9h type=route |
name=Hoog Water segment=alternative network=nwn operator=Wandelnet ref=LAW 1-3 route=hiking stage=9h type=route |
Example of how you could tag node networks
description=Connection of node 27 and 86
name=Schweinrich (27) - Flecken Zechlin (86)
network=rcn
network:type=node_network
ref=27-86
route=bicycle
type=route
|
description=Connection of node 27 and 86 from=Schweinrich network=rcn network:type=node_network noname=yes ref=27-86 route=bicycle to=Flecken Zechlin type=route |
Staged international hiking path. The E2 splits into a West and an East route, none of which is more "main" than the other We will need a superroute that has both variants - not addressed here description=Westroute: Stranraer (UK) - Birminhgham (UK)[…] name=European walking route E2 west, UK, South East England name:signed=no network=iwn ref=E2 ref:signed=no route=hiking type=route |
description=Westroute: Stranraer (UK) - Birminhgham (UK)[…] from=Stranraer name=European walking route E2 name:signed=no network=iwn ref=E2 route=hiking stage=7 stage:description=South East England to=Birmingham type=route |
Nom affiché
Les éditeurs devraient utiliser la logique suivante pour déterminer le nom à affiché d'une relation :
DisplayName ::= (name | ref | "De " from " à " to | description) ["(" RouteStage " - " RoutePart ")"] RouteStage ::= (stage ": " stage:name | stage:name | stage) RoutePart ::= "De " from " à " to
Fonctionnalités/Pages concernées
- La clé stage=* devrait préciser qu'elle ne prend que des valeurs numériques et expliquer stage:name=* et stage:description=*.
- route=bicycle et route=hiking devraient indiquer les règles, les bonnes pratiques et le lien vers les nouveaux attributs.
- Relation:route devrait indiquer les nouveaux attributs.
- Roles_for_recreational_route_relations devrait indiquer qu'il faut également utiliser segment=*.
- state=* devrait supprimer state=alternate, qui est maintenant remplacé par segment=alternative
- network:type=node_network devrait décourager l'invention de noms d'itinéraires et demander d'utiliser from=* et to=*.
- La créatrice et développeuse de Waymarked Trails a accepté de soutenir le nouveau schéma si le vote est adopté.
Discussions externes
- https://community.openstreetmap.org/t/ref-bei-radrouten-nur-noch-mit-offizieller-nummer-sonst-ohne-ref/93541 (en allemand).
Travail à faire par la suite
- Je vais créer des défis MapRoulette pour chaque pays, afin de nettoyer les itinéraires selon les bonnes pratiques.
- Je suis en contact avec la développeuse de Nominatim afin de permettre la recherche d'itinéraires une fois que la majorité des itinéraires sera corrigée.