Un algorithme pour fusionner des polygones planaires jointifs en PHP
02-08-2011
Le titre peut paraître un peu alambiqué : il s’agit tout simplement de pouvoir fusionner deux polygones 2D, par exemple pour assembler les communes d’un fond de carte selon divers regroupements intercommunaux, côté serveur en langage PHP.
A l’origine, deux communes :

Après application :

Étonnamment, je n’ai pas réussi à trouver en clair ce type d’algorithme pourtant d’usage très courant, on ne le trouve que perdu dans de grosses bibliothèques de fonctions comme la Java Topology Suite. J’ai pu cependant m’inspirer des concepts évoqués sur ce sujet de StackOverflow.
Le code source PHP objet de l’algorithme est disponible dans le fichier suivant : polygones.php.
Il est certainement perfectible, mais il fonctionne ! (Je suis preneur de toute remarque pour l’optimisation).
Mise à jour (12 août 2011) : ajout d’une fonction plus généralisée dans la classe, union_multi(), qui permet de fusionner un groupe de polygones avec le polygone courant (au lieu de 2 avec la fonction union()).
déc. 13, 11:09
je suis moi même à la recherche de ce type d’algorithme. Toutefois, le lien vers polygones.php ne marche pas
déc. 13, 11:56
Bonjour, en effet le fichier n’était plus disponible, j’ai réactivé le lien. L’autre solution en PHP est d’utiliser les bindings de la bibliothèque de fonctions GEOS (mais c’est bien plus complexe).
déc. 17, 10:49
merci ;)