2009/9/23 Yoann ARNAUD <yarn...@crans.org>

>
> A repérer des ways qui appartiennent aux mêmes relations communes, afin
> de les regrouper en un seul. Il faudrait en plus tester si ces ways se
> suivent pour éviter des cas de faux positifs.
>
> Si tu sais faire... Merci d'avance :)
>
>
J'avais commence a écrire une requête SQL comme cela, il y a quelques temps,
bases sur un schéma de type osmosis. Un schéma de type osm2pgsql ne convient
pas.
Enfin ma requête était pour une fusion des ways et des nodes.
L'idée était la suivante et se faisait en plusieurs passes:
- Création d'une table fusionnant les points avec une format du genre
Nodeid, NewNode
La requête était alors quelque chose du genre SELECT Nodeid, MIN(nodeId)
FROM node .... GROUP BY nodeid

- Une fois que tu as cette table tu peux ensuite modifier, les différentes
tables ways et effacer les nodes non utilises. Tu régénères les géométries
- L'étape suivante est facile. Tu as juste a trouver les ways qui sont
identiques (ce qui est le cas après fusion des points). Tu crées la encore
une table intermédiaire.
- Tu modifies après les relations avec les ways dont tu as besoin.

J'avais implémenté la première passe sur les nodes. L'autre devrait être
assez facile a implémenter aussi puisque c'est la même chose. Le cas le plus
dur est quand tu as une relation et juste une way. Aussi, ce mécanisme ne
permet pas de couper les ways en morceau plus petit quand c'est possible. Il
y aurait sûrement moyen en jouant sur une création de polygone et de créer
une séries de ways constituées de 2 points. Après, il suffit juste de
fusionner les deux ways jusqu'à ce que ça forme une forme commune et
correspondant aux polygones sélectionnés.
Enfin c'est une des choses auxquelles je pense depuis quelques temps. Corine
est bientôt fini, je vais avoir plus de temps pour faire d'autres projets
amusants ;)

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

Répondre à