[OSM-talk-fr] outils pour traiter les CLC non importés ( fusion/découpage )
Guillaume Allegre
allegre.guillaume at free.fr
Jeu 5 Nov 09:58:34 UTC 2009
Le Wed 04 Nov 2009 à 14:49 +0000, Emilie Laffray a ecrit :
> Bah si tu as une implementation potentielle, je peux voir si je peux coder
> cela si je comprends ce qu'on me demande de faire. C'est l'avantage pour moi
> d'utiliser Postgis; je n'ai pas a réfléchir a comment implémenter les
> modifications géométriques que j'ai besoin.
> Mais bon je ne suis pas convaincue qu'une telle solution soit très
> intéressante a moins que tous les polygones aient des excroissances très
> régulières et qu'il n'y ait pas de grosse masse. Enfin, peut être que je
> n'ai pas compris comment ces algorithmes fonctionnent.
>
> Emilie Laffray
En cherchant un peu dans les publications de géo algo, j'ai trouvé ça :
Mirela Tanase, Remco C. Veltkamp.
Polygon Decomposition based on the Straight Line Skeleton.
In: Proceedings ACM Symposium on Computational Geometry (SoCG 2003), 58-67.
http://www.cs.uu.nl/groups/MG/multimedia/publications/art/socg03.pdf
Qui est assez proche de l'idée intuitive que j'en avais, mais je l'ai
juste parcouru rapidement.
Les exemples de décomposition donnés sont assez convaincants, mais pour
des polygones assez simples. Je ne suis pas sûr de ce que ça peut donner
avec des vrais polygones CLC un peu tortueux.
Par contre, ça m'étonnerait que ce soit simple à implémenter en PostGIS
(je ne connais rien aux primitives PostGIS, mais si y'a un calcul de
squelette intégré, je serai sur le cul).
Eventuellement, on peut essayer une méthode plus bourrine mais peut-être plus
efficace en PostGIS, inspirée de l'érosion en géo discrète.
- on part d'un polygone CLC P
- on calcule une rétractation d'offset d (à estimer) R
- on regarde si le polygone R reste simple ou s'il a des auto-intersections
En cas d'auto-intersections, on scinde le polygone, au niveau des
sommets en question.
- A régler :
estimation de l'offset d : une fraction (par ex. 5%) du diamètre D du polygone
de départ (on peut approcher D par la diagonale de la boîte englobante de P).
- est-ce qu'on itère ? Quel critère d'arrêt ? est-ce qu'on augmente d en itérant ?
Voilà, ce ne sont que des idées en vrac. J'espère avoir un peu de temps pour
tester dans les semaines à venir.
--
° /\ Guillaume Allègre Membre de l'April
/~~\/\ Allegre.Guillaume at free.fr Promouvoir et défendre le logiciel libre
/ /~~\ tél. 04.76.63.26.99 http://www.april.org
Plus d'informations sur la liste de diffusion Talk-fr