LineString l2 = (LineString) g2;
return new LineString_Polygon(l2, a1).setReverse(true);
} else if (g2 instanceof Polygon) {
Polygon a2 = (Polygon) g2;
return new Polygon_Polygon(a1, a2);
} else if (g2 instanceof GeometryCollection) {
return multiTo(a1, g2);
} else {
throw new UnsupportedOperationException();
}