User:Axelos/hierarchies route=bicycle
Cette page est en stade brouillon, néanmoins n’hésitez pas à y participer.
Ce genre de manipulation est plutôt à destination des utilisateurs avancés, et non des débutants. En effet, découper les relations proprement n'est pas forcément facile lorsqu'on débute dans OpenStreetMap.
Concept
Les itinéraires cyclables sont représentés sur OpenStreetMap sous forme de relations. Il existe de nombreux itinéraires officiels qui sont déjà présents dans la base, ou qui peuvent l’être. Et enfin, il existe plusieurs types d’itinéraires, locaux, régionaux, nationaux et enfin internationaux.
À savoir, souvent, les itinéraires internationaux, se basent en partie sur des itinéraires nationaux, qui quant à eux se basent sur des itinéraires régionaux/locaux. Parfois les régionaux se basent sur les locaux. En clair, avec le système de relations, on peut arriver dans des situations ou jusqu’à 4 (peut-être plus ?) itinéraires se partagent le même cheminement. En cas de modification de ce cheminement (par exemple, une nouvelle voie verte sur 2 km le long de la route anciennement utilisée par l’itinéraire), c’est alors les 4 relations qui doivent être édités pour prendre en compte cette mise à jour !
Le concept des hiérarchies, permet justement d’éviter ce type de situation, ou seule une relation est modifiée, et cette modification est automatiquement appliqué sur les 3 autres itinéraires.
Comment faire ?
Le concept de hiérarchies se base principalement sur le système des relations parents/enfants. À vrai dire, ce système est déjà en parti utilisé, pour notamment découper les grandes véloroutes nationales et internationales, car sans ce procédé, les relations pourraient contenir plus de 1000 membres … Par exemple l’EuroVelo6 qui contient une relation enfant pour chaque pays traversé.
Le concept de hiérarchies ne fait donc que décupler les possibilités que propose le système des relations parents/enfants. Pour y parvenir efficacement, ne tournons pas autour du pot, il vous faudra avant tout utiliser un éditeur puissant : JOSM.
Cas concret
Nous allons prendre un cas existant, ou deux véloroutes nationales se croisent et empruntent le même cheminement sur une certaine longueur, chacun des deux exploitant un itinéraire régional. Les itinéraires nationaux sont la V50 et la V52, et l’itinéraire régional la Boucle de la Moselle.
Par souci de facilité de compréhension du concept, nous partons du principe que les deux véloroutes 50 et 52 n'empruntent aucun autre aménagement local-régional jusqu'à leurs destinations (Apach, Strasbourg, Lyon, Paris), ce qui n'est pas le cas dans la réalité. Aussi, la V52 est entièrement exploité par un réseau international … mais on omet cette information pour simplifier le cas.
En visualisant ce plan, on constate que :
- La zone 1 est constitué de deux itinéraires : La boucle de la Moselle et la V50
- La zone 2 est constitué de trois itinéraires : La boucle de la Moselle, la V50 et la V52
- La zone 3 est constitué de deux itinéraires : La boucle de la Moselle et la V52
Les zones sont indicatives, elles ne doivent pas être notifiées dans les relations.
Nous commençons par la relation représentante l’itinéraire cyclable du plus bas niveau, dans notre cas, il s’agit de la Boucle de la Moselle. Nous nous attaquerons aux véloroutes 50 et 52 plus tard.
Relations La Boucle de la Moselle
La Boucle de la Moselle est donc constitué de 5 relations au total :
- Une relation parente reprenant la totalité du cheminement en listant ses enfants
- Une relation enfant Toul - Pompey
- Une relation enfant Pompey - Laneuveville (zone 1)
- Une relation enfant Richardménil - Laneuveville (zone 2)
- Une relation enfant Toul - Richardménil (zone 3)
Chacune d'elle doivent utiliser exclusivement la balise network=rcn, la même ref=*, mais pas de from=* et to=* car il s'agit d'une boucle, on met donc roundtrip=yes. En revanche le nom peut être différent sur chacune de ces relations. Bien évidement, nous utiliserons name=La Boucle de la Moselle sur la relation parente, mais il est possible de décrire les relations enfants. Exemple name=La Boucle de la Moselle : Toul - Pompey ou encore name=La Boucle de la Moselle : Pompey - Laneuveville.
Ainsi réalisé, un système de rendu ou de réutilisation de ces données respectant le concept des hiérarchies, sera en mesure d’intégrer directement les relations enfants dans la parente, ce qui fait que l'utilisateur final ne sera informé que d'une unique relation qui contiendra toutes les informations nécessaires pour son exploitation.
Relations Véloroute 50
La V50 est constitué de 5 relations :
- Une relation parente représentant la totalité du cheminement en listant les enfants
- Une relation enfant Apach - Pompey
- La relation enfant de la Boucle de la Moselle : Pompey - Laneuveville (zone 1)
- La relation enfant de la Boucle de la Moselle : Richardménil - Laneuveville (zone 2)
- Une relation enfant Richardménil - Lyon
En mettant de coté les deux relations issues de la Boucle de la Moselle, les trois restantes doivent utiliser exclusivement les balises network=ncn, ref=V50, from=Apach et to=Lyon. Comme précédemment, nous utiliserons un nom explicite pour la relation parente name=Véloroute 50, et de préférence des noms descriptifs pour ses deux relations enfants : name=Véloroute 50 : Apach - Pompey, name=Véloroute 50 : Richardménil - Lyon.
Ainsi réalisé, un système de rendu ou de réutilisation de ces données respectant le concept des hiérarchies, sera en mesure d’intégrer directement les relations enfants utilisant network=ncn dans la parente, et en parallèle laissera visible les relations utilisant network=rcn, le but étant de laisser à dispositions ces deux itinéraires qui se superposent certes, mais restants indépendants.
Relations Véloroute 52
Le principe est le même que pour la V50, elle est donc constitué de 5 relations :
- Une relation parente représentant la totalité du cheminement en listant les enfants
- Une relation enfant Paris - Toul
- La relation enfant de la Boucle de la Moselle : Toul - Richardménil (zone 3)
- La relation enfant de la Boucle de la Moselle : Richardménil - Laneuveville (zone 2)
- Une relation enfant Laneuveville - Strasbourg
En mettant de coté les deux relations issues de la Boucle de la Moselle, les trois restantes doivent utiliser exclusivement les balises network=ncn, ref=V52, from=Paris et to=Strasbourg. Comme précédemment, nous utiliserons un nom explicite pour la relation parente name=Véloroute 52, et de préférence des noms descriptifs pour ses deux relations enfants : name=Véloroute 50 : Paris - Toul, name=Véloroute 50 : Laneuveville - Strasbourg.
Notes
Les balises from et to
Il était écrit précédemment que les balisent from=* et to=* sont obligatoires, ce n'est pas le cas. Cependant, leurs usages restent fortement conseillé car peuvent être déterminants pour certains cas spécifiques. Imaginez qu'un département créé le long d'un canal une voie verte de 30 km, et décide d'y faire transiter deux itinéraires locaux. Dans ce cas, la solution est de créer une relation enfant pour l'un des deux itinéraires, qui sera ensuite incluses dans le second itinéraire. Puisque les deux itinéraires emplois network=lcn, se sont alors les balisent from=* et to=* qui les différencient.
Statut de proposition
Concernant la gestion des relations enfants désignés comme étant des propositions avec l'usage de la balise state=proposed (généralement des itinéraires en projet et donc non existant sur le terrain), elles peuvent être incluent de la même manière que les autres n’ayant pas ce statut. Un système de rendu ou de réutilisation de ces données respectant le concept des hiérarchies, saura les différencier, soit en les ignorants, ou soit en les traitant d'une façon différente. Ainsi, lorsque cet aménagement sera existant sur le terrain, il suffira de retirer cette balise.