Решение PolyGeo - это то, что я использовал сам и работает хорошо (+1). Другая альтернатива - это накапливать полигоны на небольшое количество, а затем снимать с буфера результат на то же количество (скажем, + 1 м, а затем -1 м). Это также хорошо работает, но сопряжено с небольшим риском случайного объединения полигонов, которые соседствуют с тем же количеством, что и ваш буфер. Это также может увеличить количество ваших вершин (что может быть или не быть проблемой).
Вы также можете написать скрипт для надежного решения, перебирая каждый полигон, создавая временные полигоны на основе внутренних колец и проверяя их на предмет их областей. Если они ниже вашего порога, вы удалите это внутреннее кольцо из геометрии и обновите свой ряд. Это решение больше работает, чем решение PolyGeo или мой буферный взлом выше, но, возможно, является «более чистым» подходом.