Le 18 février 2013 16:26, Christian Quest <cqu...@openstreetmap.fr> a écrit :
> C'est possible, mais cela n'impacte pas mapnik (la preuve, le rendu osmfr
> n'a pas de problème pour dessiner ce bâtiment) et n'explique par pourquoi
> ils ne sont pas rendus.

Le serveur layers/u2 corrige certains problèmes de géométrie comme les
"flèches" ultrafines créées par des traits *quasi* superposés, ce que
ne fait pas le serveur Mapnik d'OSM org.

De plus pour que ces flèches posent un problème ou pas, il y a une
dépendance dans le calcul des corrdonnées d'intersection des points,
notamment sur la précision de ce calcul.

En théorie les données de la base sont stockées dans des flottants
IEEE double précision (64 bits), mais pour les calculs intermédiaires,
il peut y avoir des données dans le coprocesseur avec une précision
supérieure (80 bits par exemple), tant que ce calcul intermédiaire
n'est pas arrondi et stocké dans une variable double précision.

Selon le processeur employé et l'optimisation ou non des calculs
(arrondir tous les résultats intermédiaires a un coût en performance,
mais c'est le prix pour la compatibilité du code compilé en mode IEEE
"strict").

Il se trouve qu'il y avait bel et bien ici des points non parfaitement
alignés avec le segment avec lequel il devait se joindre, cela
empêhcait la fusion des segments communs après les calculs
d'intersection.

Bref il ne faut jamais tracer comme ça deux traits superposés :

1                                          2                              3
[]-------------------+----------------------[]
[]-----------------------------------+------------------------------------[]

car il n'y a pas garantie que le point 2 soit sur le segment 1-3

Si on ne veut pas de multipolygone il faut tracer les deux traits ainsi:

1                                          2                              3
[]-------------------+----------------------[]
[]-------------------+----------------------[]-------------+-------------[]

Bref joindre explicitement le point 2 au segment 1-3

Cela se voit quand on regarde bien : on voit dans JOSM deux croix de
création de nouveau noeud entre les points 1 et 2, alors que les point
1 et 3 sont superposés correctement (on voit des grands carrés) mais
pas le point 2 (petit carré).

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

Répondre à