for (GeographicExtent ext : elem) {
if (ext instanceof BoundingPolygon) {
BoundingPolygon bp = (BoundingPolygon) ext;
Collection<? extends org.opengis.geometry.Geometry> geoms = bp.getPolygons();
for (org.opengis.geometry.Geometry geom : geoms) {
Envelope env = geom.getEnvelope();
if (env.getMinimum(0) < xmin)
xmin = env.getMinimum(0);
if (env.getMaximum(0) > xmax)
xmax = env.getMaximum(0);
if (env.getMinimum(1) < ymin)
ymin = env.getMinimum(1);
if (env.getMaximum(1) > ymax)
ymax = env.getMaximum(1);
}
} else if (ext instanceof GeographicBoundingBox) {
GeographicBoundingBox gbb = (GeographicBoundingBox) ext;
ReferencedEnvelope env = new ReferencedEnvelope(DefaultGeographicCRS.WGS84);
env.expandToInclude(gbb.getWestBoundLongitude(), gbb.getNorthBoundLatitude());
env.expandToInclude(gbb.getEastBoundLongitude(), gbb.getSouthBoundLatitude());
env = env.transform(crs, true);
if (env.getMinX() < xmin)
xmin = env.getMinX();
if (env.getMaxX() > xmax)
xmax = env.getMaxX();
if (env.getMinY() < ymin)
ymin = env.getMinY();
if (env.getMaxY() > ymax)
ymax = env.getMaxY();
}
}
if (xmin == Double.MAX_VALUE || ymin == Double.MAX_VALUE || xmax == Double.MIN_VALUE
|| ymax == Double.MAX_VALUE) {
return new ReferencedEnvelope(crs);