FR:Relation:connectivity
connectivity |
Description |
---|
Relation de type from-via-to indiquant la façon dont les voies "from" sont liées aux "to" |
Membres |
|
Statut : Approuvé |
Outils pour cet attribut |
|
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 |
---|---|---|
9496175 9496175 | 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
| |
9680471 9680471 | 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. | |
9607206 9607206 | 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. | |
9529781 9529781 | 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. | |
9646478 9646478 |
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). | |
9526433 9526433 |
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. | |
9619789 9619789 | 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: 9729600 9729600
|
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. | |
9502717 9502717 | 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. | |
9516178 9516178 | 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. | |
9502616 9502616 | 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é