Le 17 octobre 2012 11:57, Ab_fab <[email protected]> a écrit : >> Ce qu'il faut plus généralement c'est un outil qui implémente une fonction >> de type >> "buffer", "zone tampon" en français. Avec Postgis, c'est ici : >> http://www.postgis.org/documentation/manual-2.0/ST_Buffer.html >> Ça permet de dilater une surface. Le travers à éviter, c'est de générer >> trop de points, >> la fonction de Postgis permet de jouer là-dessus avec le paramètre >> num_seg_quarter_circle.
Ce problème du nombre de points qui augmente beaucoup vient du fat qu'au lieu de joindre les tampons rectangulaires par des biseaux complets (en losange) ou des biseaux tronqués (trinagulaires), tu utilises des arcs de cercle. C'est une autre solution, mais est-ce vraiment souhaitable pour la demande de polygones simples ? Un biseau complet ne change pas le nombre de points autour du sommet déplacé par le buffer, et un biseau tronqué (uniquement sur les pointes les plus aiguës dont le biseau dépasserait le paramètre de seuil) de fait que doubler ce point. Pour la demande de "simple polygone englobant", un biseau complet est préférable, mais avec un rapport seuil de biseau raisonnable (légèrement supérieur à 1 et souhaitablement inférieur à 4) suffit : je pencherais pour un seuil voisin de 1,73, ce qui limite les biseaux complets aux angles de plus de arctg(1,73) = 60 degrés, les pointes d'angle inférieur étant joints non pas par un biseau complet mais tronqués par un simple triangle (un seule sommet ajouté), et non un arc de cercle qui augmente beaucoup le nombre de points. Maintenant si tu as un paramètre qui limite le nombre de segment générés par sommet à joindre pour parcourir un seul quart de cercle, 1 seul segment par quart de cercle suffit (ce qui génère tout de même 2 segments et 3 sommets par angle aigu déplacé par le buffer au lieu d'un unique segment et 2 points par un biseau tronqué, et aucun segment ni point en plus pour le biseau complet). _______________________________________________ Talk-fr mailing list [email protected] http://lists.openstreetmap.org/listinfo/talk-fr

