layer=* sert surtout à indiquer qu'il n'y a pas d'intersection et
qu'un objet est au dessus d'un autre.

S'il n'y a qu'un seul objet en présence, il ne change rien au rendu en
tant que tel de cet objet : seul tunnel=yes ou bridge=yes a un effet.

Mais si on a un objet qui a une intersection apparente sans aucun
noeud commun, alors il faut mettre un layer=* au moins sur un objet
(le layer par défaut d'un objet a la valeur 0) pour marquer
explicitememtn qu'il n'y a pas d'intersection (donc pas de noeud en
commun) et que l'un est à dessiner par dessus l'autre dans un ordre
prédéterminé.

En pratique layer=* ne sert qu'au rendu, il ne strictement change rien
à la modélisation, sauf qu'il indique explicitement qu'il n'y a
effectivement pas d'intersection entre les objets partageant la même
valeur de layer=*.

C'est déjà le cas par défaut si on n'a pas de noeud commun, mais ce
sont les moteurs d'analyse qui cherchent à savoir si une intersection
n'a pas été oubliée : si deux objets sont dans le même layer et qu'ils
ont des points ou surfaces en commun dans la projection 2D d'OSM, ces
objets sont en intersection et alors que faire des tags de chacun
d'eux si ils sont incompatibles entre eux ? Une route et un fleuve ne
sont normalement pas compatibles entre eux, sauf si on tague
explicitement la partie en intersection (par exemple un gué), ou quon
supprime cette intersection en les mettant dans des layers séparés.

Maintenant même si on a mi des layers séparés pour une route et une
rivière, cela devrait suffire pour le rendu correct car on sait lequel
passe au dessus de l'autre. Mais l'analyse cherche souvent à savoir
s'il l'objet du dessus est un pont, ou si l'objet du dessous est un
tunnel : ce n'est pas à l'endroit de l'intersection évitée qu'on peut
répondre, mais sur ce qui est autour et amène à cette intersection :
- si l'objet au dessus est en moyenne plus haut que la route qui y
vient, on a normalement un pont sur cet objet.
- si l'objet en dessous descend sous le niveau moyen, on a normalement
un tunnel sur cet objet.
- mais on ne peut pas répondre si aucun des deux objets ne subit un
changement de hauteur absolue (et dans ce cas mette l'un en pont
plutôt que l'autre en tunnel est un choix arbitraire).

En principe, une rivière ne peut pas descendre et remonter de l'autre
côté, contrairement à un pont ou tunnel routier ; et les terres autour
de la rivière sont plus haut et s'alignent en hauteur avec la route.
C'est pour ça que la plupart du temps dans une intersection
rivirère/route on a un pont sur la route et non un tunnel sur la
rivière (mais ce second cas existe).

Pour les intersections route/route, il n'y a aucune règle
morphologique. Mais comme le schéma routier privilégie de minimiser
les changements de hauteur et minimise les besoins en matériaux et
coûts de déblaiement (et de renforcement des parois pour éviter le
comblement de l'excavation, ainsi que les équipements de mise hors
d'eau), on a le plus souvent un pont (moins compliqué, moins cher)
pour la voie du dessus plutôt qu'un tunnel pour la voie du dessous.
Mais on devrait avoir l'un ou l'autre.

Si on a soit un point soit un tunnel dans la partie des deux chemins
en intersection, on devrait pouvoir se passer alors de layer=* sur les
deux chemins : si on trouvait une route sans pont et sans layer de
valeur inférieure à une section de rivière sans layer marquée en
bridge (oui ça existe !) on peut déduire que la rivière est à un layer
supérieur (un bridge est nécessairement au dessus d'un non-bridge ; de
même un tunnel set nécessairement en dessous d'un d'un non
non-tunnel).

Cela veut dire aussi que des cas comme ceux-ci sont en erreur (layers
incompatibles) :

- bridge=yes **et** tunnel=yes sur le même objet (peu importe leurs layers)

- bridge=yes sans layer (équivalent à layer=0), contre un autre objet
non-bridge (tunnel ou pas) avec layer > 0
- tunnel=yes sans layer (équivalent à layer=0), contre un autre objet
non-tunnel (bridge ou pas) avec layer < 0

Le cas suivant n'est pas toujours une erreur, mais il manque
quelquechose (soit des noeuds supplémentaires, soit des layers pour
lever l'ambiguité) :

- non-bridge **et** non-tunnel, contre un autre objet non-bridge
**et** non-tunnel (signalé par Osmose)

Mais des cas comme ceux-ci sont corrects:

- bridge=yes sans layer (équivalent à layer=0), contre un autre objet
non-bridge (tunnel ou pas) avec layer < 0
- bridge=yes sans layer (équivalent à layer=0), contre un autre objet
bridge (non-tunnel) avec layer != 0

- tunnel=yes sans layer (équivalent à layer=0), contre un autre objet
non-tunnel (bridge ou pas) avec layer > 0
- tunnel=yes sans layer (équivalent à layer=0), contre un autre objet
tunnel (non-bridge) avec layer != 0

Cependant les cas suivants sont moins graves (on peut déduire un ordre
automatiquement, les layers sont redondants, Osmose les sginale mais
en fait un moteur de rendu peut lever l'ambiguïté) :

- bridge sans layer, contre un autre objet non-bridge **et**
non-tunnel sans layer
- tunnel sans layer, contre un autre objet non-bridge **et**
non-tunnel sans layer
- bridge avec layer=N, contre un autre objet non-bridge **et**
non-tunnel avec le même layer=N
- tunnel avec layer=N, contre un autre objet non-bridge **et**
non-tunnel avec le même layer=N


Le 22 février 2013 23:01, Mides <mides....@gmail.com> a écrit :
> Bonsoir,
>
> pourquoi pas, et c'est vrai que ton raisonnement est tout à fait logique.
>
> Mais il m'arrive parfois d'avoir un "avertissement" me signalant un
> croisement entre un cours d'eau et une route, où l'on trouve bien un
> tag:bridge sur celle ci donc...je rajoute layer:-1, mais finalement ce n'est
> peut être pas très utile.
>
> Pour mon ruisseau qui serpente à travers champ et bois, puis longe une route
> sur un tronçon et finit par la traverser, j'hésite quand même à mettre un
> tag bridge:yes pour un "passage" de 1.50 m. Par contre là, et je ne sais
> point si c'est le tag layers:-1 ou tunnel:culvert qui mène la barque, mais
> je n'ai pas "d 'avertissement" et le ruisseau passe bien, visuellement, sous
> la route.
>
> Michel
>
>
>
>
>
> Le 22 février 2013 22:45, Vincent de Chateau-Thierry <v...@laposte.net> a
> écrit :
>
>> Bonsoir,
>>
>> Le 22/02/2013 22:31, Mides a écrit :
>>>
>>>
>>> J'ai bien mis layer:-1 et tunnel:culvert mais celui ci apparait quand
>>> même sur la carto, et rien ne laisse supposer qu'il n'est donc pas
>>> visible.
>>>
>>
>> Ajouter "layer=-1" pour un tunnel, ou "layer=1" pour un pont n'a d'intérêt
>> que si d'autres objets à proximité immédiate sont, respectivement, en
>> dessous du tunnel ou au dessus du pont.
>> Dit autrement, si aucun objet n'a besoin d'un tag "layer=-2", alors ce qui
>> est taggué en tunnel n'a pas besoin d'être surchargé par "layer=-1".
>> Idem pour un pont : si aucun objet n'a a être placé au dessus du pont avec
>> "layer=2" (par exemple une ligne électrique), alors ajouter "layer=1" est
>> redondant avec le tag bridge=yes.
>>
>> vincent
>>
>> _______________________________________________
>> Talk-fr mailing list
>> Talk-fr@openstreetmap.org
>> http://lists.openstreetmap.org/listinfo/talk-fr
>
>
>
> _______________________________________________
> Talk-fr mailing list
> Talk-fr@openstreetmap.org
> http://lists.openstreetmap.org/listinfo/talk-fr
>

_______________________________________________
Talk-fr mailing list
Talk-fr@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-fr

Répondre à