Le 5 mai 2012 15:24, sly (sylvain letuffe) <li...@letuffe.org> a écrit :
> Le samedi 5 mai 2012 14:12:22, Philippe Verdy a écrit :
>> Je maintiens que ton fichier démo2 reste ambigu selon les règles mêmes
>> énoncées dans le wiki
>
> Non, il ne l'est pas.

Regarde mieux !

Tiens compte du fait que l'ordre de tri des membres n'est pas
significatif, pas plus que l'orientation des ways : tu obtiens 3
géométries possibles dans ton fichier (en ignorant l'orientation des
anneaux obtenus ainsi que le noeud de départ de chacun d'eux), même si
dans ce cas simple 1 seule correspond à une géométrie GIS valide. La
difficulté c'est l'algo pour déterminer cette géométrie valide (on a
un arbre de recherche combinatoire).

Si tu fais le tri dans JOSM, selon l'ordre dans lequel tu as dessiné
ou scindé les ways, tu obtiens soit deux carrés (ce à quoi tu
t'attends), soit une figure en 8 sans croisement (on rebondit sur le
point central en tournant à 90 degrés), soit une figure en 8 croisée
(en continuant en ligne droite) dont la surface à droite du tracé
parcouru dans la même direction sera alternativement à l'intérieur
puis à l'extérieur du polygone (façon ruban de Moebius)... Le tri de
JOSM est donc instable et impossible à prédire s'il dépend de l'ordre
de création des ways ou de leur id dans la base (ces ids peuvent
changer car les ways pourraient être scindés ou fusionnés avec
d'autres ways superposés pendant des modifications successives et
changer d'id : le tri de JOSM change alors sans pour autant que les
contours aient changé).

osm2gis aura les mêmes choix mais cela dépend en plus de la stabilité
de son tri interne et de l'ordre dans lequel il indexe les segments
créés par l'éclatement des ways, ordre des segments qui dépend de
l'orientation des ways (alors que cela ne devrait pas influer). cela
dépend aussi de son algo de tri de base (est-ce un QuickSort ? je n'ai
pas regardé) et des clés de tri qu'il utilise et comment il indexe les
éléments géométriquement égaux mais par ailleurs distincts par leur
position relative dans la liste initiale à trier. Si l'algo de base
n'est pas stable pour les valeurs égales, le tri obtenu dependra alors
du nombre total de segments (qui peut varier simplement parce qu'on a
coupé un segment en deux parties sans changer la forme géométrique
décrite).

Dans des cas plus complexes comportant plus d'1 noeud commun — ou plus
rarement s'il y a 6, ou 8 chemins terminés sur ce même noeud, cas
aussi possible et que j'ai vus dans OSM ! — on obtient plusieurs
géométries valides, et cela explose de façon combinatoire et de façon
encore plus rapide, en plus d'obtenir un algo de résolution
particulièrement lent puisque le problème à résoudre pour énumérer les
géométries possibles, dont chacune reste à valider selon les
contraintes des polygones GIS, est topologiquement équivalent à celui
du voyageur de commerce : avec un grand nombre de ways (par exemple
une centaine, ce qui arrivé dans le cas justement de Xativa en
Espagne), c'est prohibitif !

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

Répondre à