Filtre polygones : vérifie les polygones en préservant la topologie
Description
Voici une application que j'avais programmée en Mapbasic dans le but de “filtrer” des polygones. L'algorithme utilisé est celui de Douglas-Peuker, et l'implantation que j'ai faite préserve la topologie existante. Les régions à polygones multiples, les beignes et trous de beignes sont traités correctement (enfin j'espère!).
Un paramètre permet de spécifier une “taille de lot”. Cette taille représente le nombre d'enregistrements traités par le programme avant de sauvegarder la table résultat. J'ai dû procéder ainsi car le programme devenait de plus en plus lent au fur et à mesure du traitement (cela me semble être un problème de gestion de la mémoire par MapInfo). En sauvant fréquemment les résultats, l'application donne une meilleure performance.
À noter que certaines caractéristiques géométriques ne sont pas bien supportées par MapInfo, notamment les “self-intersecting polygons”. Ce genre d'objets pourrait faire planter l'application. S'assurer aussi de ne pas avoir d'enregistrements sans objets et d'objets autres que polygones. Aussi, faire un “Pack table” au préalable.
Pierre Blanc
pblanc@mtq.gouv.qc.ca