Le 5 mai 2012 12:19, sly (sylvain letuffe) <li...@letuffe.org> a écrit :
> Le samedi 5 mai 2012 07:26:09, Philippe Verdy a écrit :
>> Note: je suis tombé aussi sur d'autres cas de géométries qui son mal
>> résolues lors de la conversion OSM vers OGC.
>
> Mon avis est que cette question n'a pas sa place sur cette liste car trop
> technique; et, spécifique, à mon avis, à l'outil de conversion utilisé.

Peut-être mais l'outil utilisé sert absolument à tout le monde (et pas
seulement les moteurs de rendus) dès qu'on cherche à interpréter le
contenu de la base OSM.

Je maintiens le fait que ce qu'on met dans le base est ambigu pour le
cas des polygones qui se touchent car ce cas n'est pas documenté du
tout (alors que la doc des multipolygones d'OSM prétend que c'est
compatible avec le GIS standard). Il manque une règle non écrite (et
en fait pas respectée du tout puisque jamais vérifiée explicitement et
non nécessaire la plupart du temps car l'immense majorité des
multipolygones d'OSM ne contiennent pas de polygones qui se touchent).

Ce n'est PAS spécifique à l'outil utilisé. L'ambiguité est intrinsèque
à la représentation OSM actuelle.

Ta demo2 je l'avais déjà essayée aussi (exactement comme tu l'as
envoyée, regarde l'historique de la même municipalité) : elle ne
marchait pas non plus, car elle contient la même ambiguïté
d'interprétation au vu des règles OSM décrites actuellement.

On ne sait pas dire à partir des données OSM quels ways interconnecter
(ou pas) pour former les polygones fermés, ou si on doit générer un
seul polygone ou plusieurs (en modèle GIS standard ce devrait être
plusieurs, car il n'est pas permis aux sommets d'un même polygone
d'être visité plus d'une fois par le chemin qui le traverse, sauf les
2 sommets terminaux du chemin lui-même qui peuvent être identiques
pour produire un polygone fermé). Il n'y a aucune règle dans OSM pour
faire les paires correctes de ways.

Comment te convaincre ? Pourtant j'avais réduit le cas à quelque chose
de plus simple dans un schéma pour éviter d'avoir à comprendre le cas
concret bien plus compliqué.

Il n'est décrit nulle part dans les règles de modélisation OSM quels
ways d'un multipolugone se connectent à quel autre, et c'est bien pour
ça qu'osm2gis se trompe (et ce n'est pas un bogue de cet outil).

Ce qui est décrit en revanche c'est que :

- les ways ne doivent pas se croiser (que ce soit sur un point non
décrit par un noeud commun, ou sur un noeud intermédiaire qui n'est
pas un des 2 noeuds terminaux d'un way).

- il décrit aussi le fait que les noeuds terminaux des ways se
touchent par paire (puisque c'est la seule façon de les connecter pour
former des polygones fermés),

- mais pas écrit combien de ways peuvent utiliser le même noeud terminal

Dans le modèle OSM actuel, cela marche bien quel que soit le rôle
indiqué pour les ways, à condition que nulle par il y ait plus de 2
ways terminés sur un même nœud), les rpoles "inner" et "outer" ne sont
qu'indicatifs et servent davantage au contrôle de cohérence entre ce
qu'on peut déduire de la géométrie et ce qui est dans la base, mais
ces rôles ne servent encore à rien pour générer la géométrie. De fait:

- peu importe comment on renseigne les rôles tant que les polygones ne
se touchent pas et sont tous fermés sans se croiser eux-mêmes, et peu
importe si les polygones sont décrits en un seul ou plusieurs ways,
avec ou sans partage des ways pour les frontières communes de deux
zones limitrophes cela marche, il n'y a pas d'ambiguîté réelle au fait
de connecter systématiquement toute paire de way qui partagent un même
noeud terminal.

Ce n'est pas le cas ici. Il faut une règle de résolution en plus,
propre à OSM lui-même, et dont ensuite les outils (osm2gis ou un
autre) devront tenir compte.

Bref cela a a bien place sur cette liste avant même d'aller sur la
liste DEV, car c'est un problème de modélisation OSM, propre et
intrinsèque au schéma OSM lui-même pour demander qu'on modifie les
outils pour tenir compte d'une règle supplémentaire de résolution de
l'ambiguïté.

Oui c'est technique, mais on est encore loin de la solution finale. Je
maintiens que le problème est encore insoluble dans le modèle OSM
actuel qui mélange les rings distincts dans une même relation

Sachant aussi :

- qu'il n'est pas possible de déterminer depuis la liste des ways
membres, même correctement ordonnée, où s'arrête la sous-liste d'un
polygone fermé et ou commence la sous-liste du polygone fermé suivant,
si ces deux polygones fermés (internes ou externes peu importe)
partagent un noeud commun : on utilise quoi pour les séparer ? l'ordre
ne suffit pas. les rôles différents ne suffisent pas non plus (et sont
encore assez souvent incohérents.

- et que la plupart du temps et presque partout ces ways sont très
souvent dans le désordre, l'ordre pouvant être brisé à tout moment
simplement en scidant un way en deux parties, selon son orientation).

- que les rôles sont souvent aussi aléatoires : tant que les polygones
fermés ne se touchent pas (cas le plus fréquent) ce n'est pas un
problème, on peut les ignorer...

- souvent aussi des polygones internes n'ont pas de rôle défini, ou
utilisent à tord un rôle "outer". Ce n'est pas non plus un problème
tant que ces polygones d'un même multipolygone ne se touchent pas et
sont tous correctement fermés. c'est pour ça que osm2gis ignore les
rôles actuellement (il suppose que ces polygones ne peuvent pas se
toucher, ce qui est vrai avec la doc actuelle des multipolygones).

Tu ne comprends pas le problème visiblement.

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

Répondre à