les trapèzes, c'est pas terrible, il vaut mieux faire un raccordement
"sinusoïdal" tenant compte de la largeur de route pour que les coins
ajoutés aux jonctions fasse un angle assez aigu (pas plus de 30 degrés). Ca
donne les premiers points de contrôle fixes; ensuite on peut ajouter sur
les diagonales divisées en 3 parties égales des points  qu'on déplace pour
qu'il s'alignent parallèlement à la route au point de raccordement médian,
et on en fait des points de contrôle directionnels pour une courbe de
Bézier qu'on peut ensuite découper en petits segments pour former la
courbe, autant qu'on a envie.

La difficulté c'est qu'au point de jonction entre les segments tracés dans
OSM à 2 voies et ceux à trois voies, ils ne sont pas parfaitement
colinéaires et il faut en tenir compte en utilisant les médiatrices des
orthogonales pour déterminer l'orthogonale moyenne du raccordement à partir
desquels on détermine les 2 segments à 90° et à 90°+30° devant découper
chaque côté de la jonction. pour déterminer les points fixes de terminaison
des courbes de Béziers (celles à partir desquelles on fait ensuite
l'approximation en petits segments quasi colinéaires).

L'autre difficulté c'est qu'un des deux segments de chaque côté peut ne pas
être assez long pour assurer un angle de 30° permettant de le découper en
ajoutant le coin dans la première étape (celle avant de créer les Béziers),
 la contrainte de 30° maxi pour le biseau doit être alors levée en
utilisant une diagonale simple mais ensuite l'étape de calcul des points
 de controle supplémentaires reste la même pour assurer la
quasi-colinéarité aux extrémités quand ce coin biseauté est retaillé en
fine pointe courbée.

Une autre solution c'est des raccordements avec des cercles dont le rayon
égale la largeur de la route. Comme il y a un changement du nombre de
voies, on a aussi changement de cette largeur (estimée à partir du nombre
de "lanes", ou précisée en mètres dans les chemins OSM); ces cercles vont
donc aussi avoir des rayons devant suivre une courbe d'ajustement.

Noter aussi que les coins à 30° c'est pour des routes urbaines, mais c'est
encore trop pour les routes à 90km/h ou plus (mais si on prend moins, on
peut tomber plus facilement sur le cas des biseaux qui dépassent la
longueur du tronçon de voie le long du quel on ajoute ou retranche les
biseaux (il y a deux biseaux, un du côté où la largeur est plus petite et
où on ajoute le biseau, l'autres du côté où la largeur es plus grande et où
on coupe ce biseau).

Une autre façon de faire est de redécouper les segments pour avoir à des
largeurs intermédiaires: à la distance d'une extrémité correspondant à la
largeur de la voie, cette largeur s'écarte de 25% environ, et à 2 fois
cette distance, cette largeur s'écarte de 75%, à 3 fois cette distance,
cette largeur atteint 100%: on peut utiliser ça pour ajouter d'autres
points intermédiaire par une lissage de Bézier (une quadratique devrait
suffire, pas besoin de cubique mais ce n'est pas vraiment plus compliqué
avec la méthode de Bézier). Là on peut alors utiliser les trapèzes pour
joindre le tout.



Le 2 septembre 2017 à 19:45, Christian Quest <cqu...@openstreetmap.fr> a
écrit :

> Le 02/09/2017 à 15:00, marc marc a écrit :
>
>> Le 02. 09. 17 à 09:34, Christian Quest a écrit :
>>
>>> corrigé et tuiles recalculées. C'est quand même mieux !
>>>
>> +1
>>
>> est-ce tu prévois une maj avec les autres améliorations
>> qui ont eu lieu sur la version mondiale ?
>> j'ignore sur le fork rend ce genre de fusion facile ou non.
>>
>
> Le fork est tellement ancien que c'est bien compliqué de reprendre des
> améliorations...
>
> est-ce possible de soumettre d'autres améliorations ?
>>
>
> Oui, bien sûr, ensuite c'est en fonction de mon temps dispo que je m'y
> met, souvent en groupant car il faut un peu de tmeps pour se remettre dans
> le bain ;)
>
> je pense par exemple à la prise en compte du nombre de bande
>> d'une rue pour les zooms élevé
>> en première approximation, une rue avec lanes=3 devrait
>> apparaître 3x plus large qu'une rue avec lanes=1
>>
>
> Oh, ça... j'ai déjà essayé et c'est affreux sur les raccords. Il suffit de
> voir ce que ça donne dans JOSM avec le style qui montre la largeur des
> voies.
>
> Il faudrait dessiner en trapèze les zone où le nombre de voies change et
> je n'ai pas trouvé de moyen simple pour faire ça.
>
> Par contre, d'autres choses pourraient devenir visibles: ligne continue ou
> pas, voire absente par exemple mais je pense qu'on a des trucs bien plus
> prioritaires à rendre visibles avant ça, non ?
>
> --
> Christian Quest - OpenStreetMap France
>
>
> _______________________________________________
> Talk-fr mailing list
> Talk-fr@openstreetmap.org
> https://lists.openstreetmap.org/listinfo/talk-fr
>
_______________________________________________
Talk-fr mailing list
Talk-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-fr

Répondre à