// add small polys to higher order
for (Polygon p : add) {
for (int i = 1; i < polygons.length; i++) {
MultiPolygon poly = polygons[i];
if(!poly.disjoint(p) || i == polygons.length - 1){
// make sure p gets added somewhere
polygons[i] = JTSUtils.toMultiPolygon(polygons[i].union(p));
break;
}
}