FR:Key:layer
layer |
Description |
---|
Utilisé pour indiquer une relation verticale entre deux éléments |
Groupe: Propriétés |
Utilisé pour ces éléments |
Combinaisons utiles |
|
Statut : de fait |
Outils pour cet attribut |
|
L'attribut layer=*, qui est traduit par couche en français, est une des manières d'indiquer une relation verticale entre deux éléments se croisant ou se superposant. L'ordre vertical établi par la valeur de l'attribut layer est valide uniquement à la position précise de l'intersection (qui n'est pas un nœud) entre les deux éléments.
Relier deux lignes avec un nœud commun désactive l'ordre établit par la clé layer, les deux chemins seront considérés au même niveau.
Layer ne convient pas pour définir les relations verticales entre éléments ou zones qui se touchent, proches ou éloignés. Cependant, son application à de longues distances affectera de manière imprévisible (généralement en les cassant) des intersections situées loin, en dehors de la zone d'édition visible.
La valeur va de -5 à 5 mais la valeur 0 ne devrait pas être utilisée explicitement.
Une ligne passant au dessus d'une autre ligne grâce à un pont aura une valeur layer plus grande, une ligne passant dans un tunnel en dessous d'autres lignes aura une valeur layer plus petite (négative). Toutes les lignes sans tag layer sont présumées par défaut à la valeur 0.
Sauf exception, l'utilisation de layer=* sur une ligne devrait toujours être accompagnée d'un des tags suivants : tunnel=*, bridge=*, highway=steps, highway=elevator, covered=* ou indoor=yes. Son utilisation sur une surface peut se faire en complément des tags suivants : man_made=bridge, building=* et tags similaires.
Les lignes dans les bâtiments (ou structures similaires comme les parkings sur plusieurs étages, centres commerciaux, aéroports, gares, ponts ou routes sur plusieurs étages...) devraient plutôt utiliser level=* au lieu de layer.
Layer n'apporte absolument aucune information sur la différence de taille relative ou absolue d'objets qui ne sont pas à proximité directe l'un de l'autre. Un changement de valeur de layer n'indique pas un changement d'élévation. Un pont est au niveau 1 même s'il est à quelques mètres du niveau de la mer alors que le sommet du Mont Everest est au niveau 0 même s'il est à 8848m au dessus du niveau de la mer.
Une valeur négative n'implique pas que l'objet est souterrain, utilisez location=underground pour cet usage.
ele=* peut être utilisé pour indiquer l'altitude par rapport au niveau de la mer.
Plusieurs autres tags peuvent établir ou modifier des relations verticales de manière explicite ou par des hypothèses implicites. Parmi celles-ci, on peut citer : level=*, location=*, covered=*, highway=steps, aerialway=*, power=line, waterway=dam
Utilisation
Voici les principales lignes directrices :
- Les éléments au niveau 0 ne devrait pas avoir d'attribut layer=*.
- Ne pas utiliser layer=-1 pour cacher les avertissements concernant les croisements ou les chevauchements. Soit vous les corrigez correctement, soit vous laissez l'avertissement (a priori facilement visible) pour que d'autres puissent les corriger.
- Si un cours d'eau est visible sur l'image satellite, il est fort probable qu'elle ne soit pas layer=-1.
- Caractérisez les tronçons de voies les plus courts possibles/pratiques. Les longs viaducs et tunnels peuvent être marqués avec une seule valeur appropriée sur toute leur longueur pour plus de simplicité, bien qu'il puisse parfois être préférable d'ajuster la couche utilisée sur sa longueur pour tenir compte des traversées plus compliquées.
- Utilisez la plus petite valeur de couche appropriée. Utilisez seulement layer=2 pour un pont qui passe au-dessus d'un élément qui est déjà au niveau 1 ; de même, utilisez seulement layer=-2 pour un tunnel qui passe sous un autre tunnel. Pour des raisons de commodité, certaines valeurs plus élevées sont souvent utilisées/réservées localement pour les ponts très longs ou les réseaux souterrains où l'on suppose qu'ils se trouvent au-dessus/au-dessus de la plupart des autres traversées/objets de la zone.
- Lorsque les voies passent à des niveaux différents, appliquer layer=* uniquement à la voie qui est également marquée comme pont/tunnel. Seuls les voies ayant l'un des tags/attributs tunnel=*, bridge=*, highway=steps, highway=elevator, covered=* doivent être étiquetées avec l'attribut layer=*. C'est valable aussi pour les chemins de fer et les cours d'eau.
- Dans les carrefours complexes, il est souvent nécessaire de découper artificiellement les voies pour pouvoir de préciser la couche et de s'assurer ainsi que la disposition verticale des carrefours est décrite avec justesse.
- Les rivières et les ruisseaux ne doivent pas être étiquetés avec layer=-1 sur de longues sections de leur étendue, les croisements doivent être étiquetés comme tout autre croisement avec des ponts, des tunnels et des layer=*. Les cours d'eau qui sont couverts peuvent être marqués avec covered=yes et sont généralement rendus comme s'ils coulaient sous les éléments construits. Lorsqu'une route se trouve au même niveau qu'un cours d'eau, vous pouvez marquer l'intersection avec ford=* (comme gué).
- Les lignes électriques (power=line) n'ont normalement pas besoin d'être marquées avec une couche et sont supposées flotter au-dessus de tous les autres éléments, sauf si une valeur de couche est utilisée pour indiquer le contraire. En particulier il est possible d'utiliser l'attribut location=overhead pour indiquer que l'élément est "situé au dessus de la tête" et l'attribut layer=* peut être utilisé par exemple lorsque deux lignes électriques se croisent.
- D'autres éléments comme les pipelines (man_made=pipeline) peuvent aussi être marqués de façon appropriée avec les attributs de positionnement location=overhead (déja mentionné), location=overground ou location=underground plutôt qu'avec l'attribut layer=* pour indiquer simplement qu'ils sont en l'air ("overhead") sur le sol ("overground") ou enterrés ("underground"). Ces attributs ne servent pas à donner un information réelle sur la hauteur relative, qui n'est souvent pas facilement disponible (pour les canalisations enterrées par exemple). Mais si la position relative des éléments est connue (dans un croisement de canalisations par exemple) il est utile de le préciser avec l'attribut layer=*.
- Bien que certains rendus cartographiques et services d'Assurance qualité supposent que les ponts et les tunnels se situent respectivement aux couches +1 et -1, il est préférable d'indiquer explicitement la couche pour tous les ponts et tunnels.
Notez qu'il peut y avoir une certaine ambiguïté quant à savoir si un passage particulier doit être marqué comme un pont ou comme un tunnel, en particulier lorsque la distance sous la voie supérieure est longue. En général, le chemin à travers un tunnel a tendance à être plus long et plus sombre, alors que le chemin sous un pont a tendance à être plus court et moins sombre. La norme GDF utilise le terme anglais "brunnel" pour couvrir ces deux caractéristiques.
A éviter
Voici quelques exemples communs où il ne faut pas utiliser le tag layer:
- Les terrains (Landuses), tels que les parcs et les bois, ne sont en principe, pas supposés être associés à une couche à moins qu'il y ait effectivement plusieurs utilisations du sol l'une au dessus de l'autre. Mais les consommateurs de données (rendus) sont libres d'ignorer ces cas rares en ignorant purement l'information de couche.
- Surélévations ou tranchées : Routes, chemins de fer, les rivières et autres éléments aquatiques ne doivent pas avoir un tag layer à cause d'une surélévation ou d'une tranchée car cela masque les voies présentes au niveau du sol ! : utilisez embankment=* et cutting=*, ou waterway=ditch pour les fossés.
- Croisement avec de surfaces : Attention au fait que l'utilisation de layer sur un chemin traversant des zones ayant une couche différente n'est pas définie dans de nombreux cas et est susceptible de provoquer des effets imprévisibles. Par exemple, une route ou une rivière qui est marquée avec layer=-1 peut ne pas être rendue lorsqu'elle traverse une forêt (landuse=forest) avec une balise layer=0 implicite - le rendu peut être différent selon le moteurs de rendu utilisé (et ces différences considérées comme des incohérences). De telles combinaisons ne sont définies que lorsqu'elles sont utilisées avec des balises supplémentaires comme celles des pont ou tunnel.
- Couches fictives (pour les îles ou clairières) : Une île (place=island) dans un lac (natural=water) ne devrait pas être décrite avec layer=1, pas plus qu'une clairière dans un bois. Cela s'est fait dans le passé (pour tenter d'avoir un meilleur rendu) mais aujourd'hui, les multipolygones (multipolygon) devraient être utilisé à la place.
- Les étages d'un bâtiment devraient être décrits avec level=* plutôt que layer.
- Utilisez la plus petite valeur appropriée pour layer. Un pont sur une route située au niveau du sol devrait être décrit avec layer=1, et non avec layer=2.
- Grandes sections : Rivières et ruisseaux ne devraient pas être décrit avec layer=-1 sur toute leur longueur ou sur de grandes sections.
- Signe plus Les valeurs positives n'ont pas besoin du signe '+'. Utilisez 'layer=1' plutôt que 'layer=+1'.
- Éléments enterrés Utiliser des valeurs négatives pour décrire des éléments enterrés n'est souvent pas la plus adaptée : voir location=underground déja mentionné plus haut.
Exemples
Cette vue des niveaux de Washington utilisant ITO Map montre une utilisation correcte du tag layer avec des éléments avec layer=1 (rouge) seulement quand c'est nécessaire lors de passages au dessus d'éléments au sol et layer=2 (orange) lors du passage au dessus d'éléments avec layer=1. De la même façon, les éléments souterrains utilisent layer=-1 ou -2. | |
Cette vue du Grand Union canal au Royaume-Uni montre un usage incorrect des niveaux. Le canal alterne entre la surface (pas de tag layer), layer=-1 (bleu foncé) et layer=2 (orange) sans raison. Les ponts et tunnels utilisent un niveau plus grand que nécessaire et certains n'ont aucun niveau de défini. L'endroit où une rivière et une voie piétonne passent sous le canal dans un tunnel est indiqué comme étant au même niveau que le canal (layer=-1). Un parking et une série de sentiers dans le village est montrée au niveau -1, aucun tag layer n'est nécessaire pour ces éléments situés au niveau du sol. | |
Mauvaise utilisation du tag layer pour des bois et un terrain de golf. Le bois est au niveau 2 et le terrain de golf au niveau -1. Ces éléments sont tous au niveau du sol et seront correctement rendus sans tag layer. |
Comment se fait l'affichage (rendu)
Pour des raisons techniques, les moteurs de rendu donnent généralement à l'étiquette de couche le poids le plus faible parmi toutes les considérations pour déterminer comment représenter les caractéristiques.
Un moteur de rendu 2D peut établir un modèle 3D des éléments, les filtrer par pertinence et composer visuellement le résultat en fonction de l'ordre et des priorités de rendu 3D. La clé layer=* n'affecte que le modèle 3D et ne devrait avoir en principe aucune influence sur le filtrage ni sur la pertinence et les priorités de rendu (visibilité).
La modélisation 3D est principalement déterminée par l'ordre vertical naturel (le "bon sens") des éléments en combinaison avec les balises de couches et de niveaux ("level"), approximativement dans cet ordre :
- D'abord le "classement naturel" (sens commun) : (location=underground, tunnel) en dessous de (landcover, landuse, natural) en dessous de waterways en dessous de (highway, railway) en dessous de (man_made, building) en dessous de (bridge, location=overground, location=overhead)
- Ensuite, la valeur de la balise de couche - layer:
- L'indication d'une couche peut remplacer (c'est à dire "annuler") l'ordre naturel des éléments d'un groupe particulier, mais ne peut pas placer par exemple une rivière ou une utilisation du sol au-dessus d'un pont ou d'une aerialway voie aérienne. Il existe cependant deux exceptions : le cas de l'utilisation dans la cartographie d'intérieure et les étiquettes de localisation.
- les balises de couche sur les "éléments naturels" sont souvent complètement ignorées
- En dernier lieu, la Valeur de la balise de niveau - level- par rapport à la couche courante: La couche ("layer") modélise le placement brut des objets fabriqués par l'homme, tandis que le niveau ("level") concerne les caractéristiques de ces objets.
Voir aussi
- location=*
- bridge=*
- tunnel=*
- ele=*
- Layer
- Level
- Proposed_features/layer_change (Une balise pour aider les moteurs de rendu à éviter des artefacts qui peuvent se produire lorsque les couches changent, ce qui leur permet de respecter plus facilement la balise de couche)