FR:Relation:connectivity

From OpenStreetMap Wiki
Jump to navigation Jump to search
Public-images-osm logo.svg connectivity
Laneconnectivity.svg
Description
Relation de type from-via-to indiquant la façon dont les voies "from" sont liées aux "to" Modifier ou traduire cette description.
Membres

  • chemin - from
  • nœud chemin - via
  • chemin - to
Statut : ApprouvéPage for proposal

Une relation de connectivité est un type de relation utilisée pour indiquer comment les voies de deux portions de route sont connectées entre elles. Généralement non nécessaires, il existe de nombreux cas où ces relations sont nécessaires.

Comment et quand utiliser ces relations

Il existe de nombreuses situations où la relation connectivity s'avère utile :

  • Le nombre de voies d'une route change mais la clé placement=* ne suffit pas.
  • Une intersection ne peut être renseignée de façon précise avec uniquement turn:lanes=*. C'est principalement dans les lieux où de multiples intersections sont proches et qu'il est nécessaire de savoir quelle voie prendre en prévision de la prochaine intersection.
  • Le marquage au sol n'est pas représentatif de l'utilisation d'une intersection ou est simplifiée pour les utilisateurs. Un exemple est une voie pour tourner à gauche permettant de continuer tout droit et tourner à gauche à la prochaine intersection.

Dans ces situations, une ou plusieurs relations de connectivité peuvent être utilisées pour lier les voies de plusieurs portions de route.

Pour créer une relation de connectivité, trois membres sont nécessaire au minimum :

  • Un chemin from qui est le début de la relation.
  • Un ou plusieurs éléments (chemins ou noeuds) via qui représente l'intersection.
  • Un chemin to qui sera la voie de destination de la relation.

Les membres via doivent être des noeuds autant que possible, mais dans certains cas, un chemin est nécessaire. Ces situations sont courantes où les voies en amont et en aval d'une portion de route n'ont pas de voies délimitées. Dans ce cas, la relation ne serait pas possible sans chemins - la section de route sans marquage ne pourrait faire partie de la relation puisque sans voies. Une solution simple est d'indiquer le chemin non marqué comme membre via et comment les voies précedentes et suivantes y sont connectées.

La relation indique comment les voies from sont liées aux voies to.

Chaque relation doit présenter deux clés :

Clé Description
type=connectivity Indique que la relation est de type "connectivité".
connectivity=* Indique quelles voies permettent d'aboutir au membre to à partir de from en utilisant la jonction via.

La syntaxe de la valeur est similaire à [numéro de voie "from"]:[numéro(s) de voie "to"] en utilisant le caractère "|" comme séparateur. Chaque séquence contient les informations liant une voie from et les voies to accessibles (en séparant chaque to par des virgules).


Exemples

Relation dans OSM Image Attributs
relation 9496175 ConnectivityExample1.png Une relation doit être crée ici comme montré dans l'image. La relation peut être utilisée bien que la route soit à double sens.

La relation doit contenir les clés type=connectivity et connectivity=2:1|3:2.

Cela signifiant :

La voie 2 de from est reliée à la voie 1 de to

La voie 3 de from est reliée à la voie 2 de to

  • Le système de numéro de voie est identique à celui utilisé dans placement=*, où 1 est la voie à gauche selon la direction dans laquelle le chemin est tracé dans l'éditeur, 2 est la voie à sa droite, etc. Le numéro de voie bw peut être utilisé pour indiquer la voie à double sens d'un chemin from ou to.
  • Le caractère | est utilisé pour séparer les différentes voies. Chaque voie from pouvant accéder à to possède sa propre séquence, distincte des autres.
relation 9680471 ConnectivityExample8.png Une relation doit être crée ici pour indiquer quelles voies "Tourner à droite" de from sont liées à to. Comme les deux voies ont des destinations différentes, il est important de savoir à l'avance quelle voie utiliser pour tourner à droite.

Les attributs type=connectivity et connectivity=1:(1),(2),3|2:4,(5) sont nécessaires - la voie from 1 est liée aux voies to 1, 2 (possible) et 3| la voie from 2 est liée aux voies 4 et 5.

relation 9607206 ConnectivityExample2.png Une relation doit être crée ici pour préciser les liens entre les voies de la route de droite.

Les attributs type=connectivity et connectivity=1:(1),2|2:3|3:4|4:(4) sont nécessaires - la voie from 1 est liée aux deux voies de gauche de to, mais la voie de gauche de to est seulement accessible en changeant de voie, les parenthèses l'indiquent donc | la voie from 2 est liée à to 3 | la voie from 3 est liée à to 4 | la voie from 4 est également liée à to 4, mais cela nécessite de changer de voie d'où les parenthèses.

relation 9529781 ConnectivityExample3.png Une relation doit être crée ici pour indiquer quelles voies from permettent d'accéder aux voies to.

Les attributs type=connectivity et connectivity=1:1|2:2,(3) sont nécessaires - from 1 est lié à to 1 | from 2 est lié à to 2 et 3.

A noter que la voie to 3 se révèle être une extension de la voie from 2. C'est donc une des voies accessibles par from 2 indiquée par des parenthèses.

relation 9646478 Complex lane connectivity Vejlands Allé.png

Une relation doit être crée ici pour indiquer quelles voies from permettent d'accéder aux voies to. Les attributs type=connectivity et connectivity=1:1|2:(2),(3),4|3:5 sont nécessaires - from 1 est lié ) to 1 | from 2 est lié à to 2 (requiert changement de voie), à 3 (requiert changement de voie) et 4 | from 3 (voie de bus) est lié à to 5 (également une voie de bus).

relation 9526433 I40 Greensboro Complex Connectivity.png

Une relation est utilisée ici pour indiquer comment les trois voies from se scindent en quatre voies to.

Les attributs nécessaires sont type=connectivity et connectivity=1:1|2:(2),3|3:4 - from 1 dirige vers to 1 | from 2 dirige vers to 2 et 3 | from 3 dirige vers to 4.

La route se sépare en aval avec deux voies gauches et deux voies droites. Connaitre les liaisons entre les voies peut se révéler utile pour la navigation.

relation 9619789 ConnectivityExample5.png Après la séparation, cette route présente deux voies. Puis au noeud considéré comme via, trois voies apparaissent.

Les attributs nécessaires sont type=connectivity et connectivity=2:3 puis à partir du point type=connectivity et connectivity=1:1,2|2:3 - from 1 dirige vers to 1 et 2 | from 2 dirige vers to 3.

Verte: relation 9729600


Rouge: relation 9708721

ConnectivityBothWaysExample.png Deux relations peuvent être utilisées ici à la place de turn:lanes

Relation Verte : type=connectivity et connectivity=bw:(1) - la voie from dans les deux sens permet d'aller à la voie to.

Relation Rouge : type=connectivity et connectivity=bw:bw|1:1|2:2|3:3 - chaque voie correspond a une autre.

relation 9502717 ConnectivityExample6.png Une relation permet d'indiquer comment se fait le placement lorsque trois voies se scindent en six.

Les attributs nécessaires sont type=connectivity et connectivity=1:(1),(2),3|2:4|3:5,(6) - from 1 est lié à to 1, 2 et 3 | from 2 est lié à to 4 | from 3 est lié à to 5 et 6.

relation 9516178 Complex Intersection Connectivity Cincinnati Ohio.png Une relation permet de préciser la signification de "through".

Les attributs nécessaires sont type=connectivity et connectivity=2:1 - from 2 dirige vers to 1 qui n'a pas de voies et doit être considéré comme étant une voie à sens unique.

Cette intersection pourrait être renseignée autrement sans relation, mais cela changerait d'autres facteurs notamment l'angle auquel les routes sont connectées à la route secondaire.

relation 9502616 ConnectivityExample7.png Une relation permettrait de décrire comme quatre voies from passent à cinq voies to. Après le noeud via, la voie de gauche permet de tourner à gauche à la prochaine intersection tandis que les trois autres voies permettent d'aller tout droit. Une application de navigation ne doit pas indiquer à l'utilisateur d'utiliser la voie de gauche s'il ne tourne pas à la prochaine intersection.

Les attributs nécessaires sont type=connectivity et connectivity=1:2|2:3|3:4|4:5.

La voie de gauche to n'étant pas la destination de la voie from, elle ne doit pas être incluse comme telle.


Connectivité par défault

Résumé basique

Généralement, une relation connectivity n'est pas nécessaire puisque déductible d'autres facteurs.

Si le nombre de vois from permettant d'accéder à to est égal au nombre de voies de to, une relation est inutile. Le nombre de voies dépend de l'attribut turn:lanes=* du chemin from.

Parfois, une relation permet de substituer turn:lanes=*.

L'attribut placement=* permet également d'indiquer la connectivité des voies. Si deux routes se rejoignent en un noeud et que l'attribut placement est utilisé pour chacun, la connectivité peut en être déduite.

Pour placement=*, on assume que de nouvelles voies (voies commençant et n'apparaissant pas dans le chemin from) sont des prolongements de voies existantes. Soit une route avec deux voies et placement=right_of:1 devenant une route à trois voies avec placement=right_of:1, on assume une connectivité telle que 1:1|2:2,(3), et pas 1:1|2:2.

L'attribut placement=* ne doit PAS être utilisé s'il plus de deux routes rejoignent le noeud via.

Dans le cas où plusieurs routes fusionnent en une seule, on assume que les voies to de gauche proviennent des voies from de gauche et inversement à droite. Par exemple, si deux routes à deux voies deviennent une route unique à quatre voies, on assume la connectivité 1:1|2:2 à gauche et 1:3|2:4 à droite, la relation n'est pas nécessaire.

Quand plus de deux routes se rejoignent en un point, les voies à l'extrème gauche et droite from ont une connectivité implicite, mais les voies centrales nécessitent une relation pour lever l'ambiguité.

En résumé, la connectivité est implicite dans les cas suivants :

  • Le nombre de voies from est égal au nombre de voies to.
  • L'attribut placement permet d'indiquer la connectivité à l'expception des intersection.
  • Plusieurs routes se rejoignent les voies de gauche et de droite conservent leurs positions from.


Utilisateurs des données

Les utilisateurs des données peuvent avoir la connectivité des voies sous OSM comme suit :

if (connectivityRelationExistsBetweenRoadsAtVia) {
    use the relation
} else if ((number of lanes in from that can access to) == (number of lanes in to)) {
    use default connection
} else if (placement of from/to has clear connectivity AND there are only those two highways connected at the via point) {
    use placement of from/to including default placement
} else if (several oneway roads connect with only one outlet... aka roads merge together) {
    The leftmost from way's lanes should be assumed to stay to the left in 'to'
    The rightmost from way's lanes should be assumed to stay to the right in 'to'
    Any middle roads shouldn't have any assumed connectivity unless the number of lanes in those are equal to the number of lanes in 'to'.
} else {
    a relation is missing and no connectivity can be assumed.
}

Notes Additionelles

  • Les membres via peuvent être des chemins - voir cet exemple. N'importe quel nombre de chemins peut être inclus comme membres via, mais il est préférable de ne garder qu'un noeud pour la clareté.
  • Toutes les voies incluses dans les attributs :lanes de from et to peuvent être incluses dans les relations de connectivité. Par exemple, si des bandes cyclables sont renseignées par turn:lanes elles doivent être incluses dans la relation comme des voies classiques, idem pour les voies de bus.
  • Ces relation ne doivent pas être utilisée dans les localités où la connectivité n'est pas usuelle - voir ci-dessus.
  • Les voies à double sens sont intégrées dans cette relation par bw au lieu du numéro de voie classique. Par exemple, l'attribut connectivity=bw:bw|1:1|2:2 indique que les voies à double sens de from et to sont connectées, idem pour les voies 1 et 2.
  • Cette syntaxe est erronée : connectivity=1,2:1|3:2 - deux voies from sont dans la même séquence. Utiliser plutôt connectivity=1:1|2:1|3:2.
  • Ces relations peuvent être utilisée avec des routes à double sens sans attributs supplémentaires.
  • On assume que les changement de voie ne sont pas possibles aux intersections.
  • Une connectivité conditionnelle (en fonction du temps) doit être indiquée avec type=connectivity et connectivity=*, où connectivity:conditional=* permet d'outrepasser la connectivité selon certaines conditions. Ces cas étant très rares, connectivity:conditional=* ne sera pas souvent nécessaire. Voir cet exemple montrant que cela existe cependant.
  • Ce type de relation n'indique pas le type de virage entre from et to. Cela doit être précisé avec l'attribut turn:lanes=*. Une alternative est d'utiliser une relation type=manoeuvre ou type=maneuver, intégrées par OSRM, mais cela reste rare.
  • Quand une route n'a pas de voies où est sans marquages, sa voie par défaut est 1 dans la syntaxe de connectivity=*.

Voir aussi

  • Lanes - Le suffixe :lanes
  • lanes=* - Pour indiquer le nombre de voies de trafic
  • Bus lanes - Voies réservées aux bus
  • La proposition de relations de Connectivité