Le 21 septembre 2014 19:18, Muselaar <musel...@ouvaton.org> a écrit :

> J'ai eu besoin d'OSRM pour extraire facilement une trace gpx représentant
> un trajet en bus, au lieu de devoir bidouiller avec JOSM, en devant (tiens,
> on revient là-dessus) couper tous les ronds points (dans mon export, hein,
> pas de blague) pour pouvoir fusionner tous les segments et obtenir une
> trace unique, et pas plein de petits bouts. En effet, c'était ça qui me
> coinçait, il n'est pas possible de fusionner les segments dès qu'il y a un
> rond-point dans le trajet, ce qui est assez logique, du fait que le chemin
> a obligatoirement un sens.

Même pour les lignes de bus il n'est pas du tout nécessaire de couper les
rond-points... il n'est d'ailleurs même pas nécessaire le plus souvent de
tracer  deux routes séparées pour chaque sens; on peut tout à fait réunir
les deux sens dans la même relation... à condition d'employer correctement
les rôles forward et backward :

- garder le rôle vide pour un segment commun employé dans les 2 sens.

- rôle="forward" dans la plupart des sens uniques (y compris les deux voies
opposées des triangles de raccordement au rond-point). on peut aussi mettre
"forward"

- rôle="backward" très exceptionnellement, et uniquement dans les sens
uniques (oneway=yes) employés seulement dans le sens opposé par le bus (par
une voie réservée en contre-sens du sens normal) ; si la rue en "sens
unique" est parcourue dans les deux sens par le bus (voir normale en sens
normal, et voie en contre-sens réservée au bus), laisser le rôle vide pour
ce segment qui est bien bidirectionnel pour les bus même s'il est en sens
unique pour les autres.

- parfois aussi rôle="backward" dans les segments qui ne sont pas des sens
uniques à proprement parler mais qui ne sont emprunté par la ligne que dans
un seul sens (car pour l'autre sens, le bus passe par un autre chemin) :
dans ce cas c'est "backward" si le trajet se fait dans la direction inverse
du tracé du chemin (si on laisse le rôle vide cela voudrait dire que la
ligne emprunte le chemin dans les deux directions): si la rue
bidirectionnelle est empruntée dans un seul sens mais dans le sens du tracé
du chemin, le rôle est "forward" (si on laisse le rôle vide cela voudrait
dire que la ligne emprunte le chemin dans les deux directions)

Et tout peut être ordonné en partant d'un des deux terminus. Cas
particulier pour les lignes de bus en boucle : là encore une seule relation
suffit pour les deux sens on part d'un point arbitraire; mais idéalement
cela devrait être un des terminus (là où les bus se mettent en attente ou
commencent leur parcours en début de service)

----

Seule difficultés:

* les lignes qui font un décrochement et reviennent sur leur pas avant de
poursuivre par un autre chemin : je ne vois pas comment faire actuellement
pour indiquer le sens de parcours uniquement avec les chemins.
personnellement j'ordonne les chemins du décrochement après la liste des
autres chemins connectés. Une partie du décrochement dans la même direction
étant parcouru sur un même chemin dans les deux sens, ce chemin est
bidirectionnel et a donc un rôle vide. Problème alors: le décrochement
est-il emprunté par la ligne bus dans ses deux directions ? Pas toujours.
C'est ambigu sauf si on ajoute la liste des arrêts (noeuds avec le rôle
"stop") qui détermine quand (au milieu de la ligne) le décrochement est
parcouru (il faut rodonner les noeuds de rôle "stop". Mais alors si l'arrêt
n'est utilisé quand dans une seule direction une variante est d'utiliser
les rôles "stop_forward" ou "stop_backward" mais cela n'a rien à voir avec
le sens de tracé de la rue mais à l'ordre des noeuds : "stop_forward" c'est
quand l'arrêt est utilisé seulement après le noeud précédent de la liste,
et "stop_backward " quand l'arrêt est utilisé seulement après le noeud
suivant de la  liste.

* les lignes qui font un décrochement mais ne reviennent pas par le chemin
d'entrée vers ce décrochement et font un "huit": ce cas se présente pour
des lignes qui font un décrochement en tournant à gauche pour faire le tour
d'une place par exemple et sortent de la place pour revenir à un point déjà
parcouru dans le même sens en tournant à nouveau à gauche -- dans le même
direction de la ligne un même segment est emprunté deux fois dans le même
sens -- et le cas identifique pour le décrochement par une boucle en
dortant en droite et revenant à la ligne en tournant à nouveau à droite
pour reprendre le même segment ans le même sens. Là encore la liste
ordonnée des arrêts résout l'ambiguité.

En gros: pour les lignes de bus; ce qui est en fait le plus important c'est
moins le chemin effectivement suivi que la liste ordonnée des arrêts
(noeuds de rôles "stop", "stop_forward" et "stop_backward"). Les chemins
suivis sont accessoires et donc rien ne justifie de tronçonner les
ronds-points.

----

Autre cas: parfois certains rond-points ont une voie centrale réservée aux
bus qui l'emprunte dans un seul sens (souvent pour tourner à gauche pour ne
pas avoir à faire le grand tour : on les trouve dans les villes avec des
ronds-points un peu étroits et où les bus articulés ont du mal à faire le
virage); dans l'autre sens, (pour tourner à droite) le bus prend un court
segment du rond-point normal ou prend une voie de contournement extérieur
en évitant le rond-point. Dans ce cas dans une direction on n'utilise pas
le cercle du rond-point mais on emprunte la voie centrale (avec le rôle
"forward" puisque sens unique et dans le même sens que le tracé SVP donc
aussi avec "oneway=yes"), pour l'autre direction on utilise le rond-point
ou la voie de contournement extérieure (également avec le rôle "forward" là
aussi c'est un sens unique).

Le rond-point lui-même est alors particulier puisqu'en en faisant le tour
il faut céder le passage au bus entrant ou sortant de la voie centrale (on
voit des lignes au sol marquant le céder le passage où les véhicules sur
l'anneau ne sont pas prioritaires contrairement aux ronds-points normaux.
Mais là encore pas besoin de tronçonner le rond-point ! Il suffit juste de
mettre sur le cercle du rond-point des noeuds "céder le passage"
(highway=giveway)

----

Le seul cas où il convient sans doute de tronçonner un rond point est celui
où une partie de celui-ci est un pont (par exemple des rond-points
construits sur deux ponts séparés (parfois trois) qui passent par dessus
une rocade. Le rond-point est assez grand pour qu'on puisse clairement
séparer les deux ponts et ne pas mettre tout le rond-point en pont puisque
le reste est à niveau et d'autres rues s'y connectent (par exemple les 4
bretelles de raccordement à la rocade passant sous les deux points du
rond-point). On est là dans un cas de carrefour de taille très importante
avec une voirie compliquée (en fait un échangeur) qu'il vaut mieux
détailler un peu; et ce n'est en fait pas réellement un rond-point même si
les règles de priorité à gauche (aux véhicules déjà dans l'anneau). Mais ce
cas est rare et on doit en trouver tout au plus un ou deux au dessus des
rocades des grandes villes (parfois une ligne de chemin de fer). L'autre
solution serait de découper la voie passant sous les ponts en tunnel mais
seulement si celle-ci est semi-enterrée), ce qui évite alors de tronçonner
le rond-point .C'est discutable.

D'une façon générale, le tronçonnage des ronds-oints complique beaucoup
plus la maintenenance des itinéraires comme les lignes de bus, ou routes
cyclables ou réseaux de routes (comme une relation pour toute une
départementale ou nationale). La plupart des exemples fait avec un
tronçonnage sont bogués au niveau du routage. Il faut l'éviter autant que
possible.
_______________________________________________
Talk-fr mailing list
Talk-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-fr

Répondre à