protected Polygon toPolygon(ReferencedEnvelope env2) { ReferencedEnvelope env = env2; if (env == null) env = new ReferencedEnvelope(-180, 180, -90, 90, DefaultGeographicCRS.WGS84); AttributeDescriptor att = mapper.getSchema().getDescriptor(mapper.getBounds()); CoordinateReferenceSystem crs = null; if (att instanceof GeometryDescriptor) crs = ((GeometryDescriptor) att).getCoordinateReferenceSystem(); if (crs == null) crs = DefaultGeographicCRS.WGS84; GeometryFactory factory = new GeometryFactory(); try { env = env.transform(crs, true); } catch (Exception e) { IssuesActivator.log("", e); // $NON-NLS-1$ } return factory.createPolygon( factory.createLinearRing( new Coordinate[] { new Coordinate(env.getMinX(), env.getMinY()), new Coordinate(env.getMaxX(), env.getMinY()), new Coordinate(env.getMaxX(), env.getMaxY()), new Coordinate(env.getMinX(), env.getMaxY()), new Coordinate(env.getMinX(), env.getMinY()), }), new LinearRing[0]); }
protected Geometry createBounds(IIssue issue) { AttributeDescriptor att = mapper.getSchema().getDescriptor(mapper.getBounds()); if (MultiPolygon.class.isAssignableFrom(att.getType().getBinding())) return toMultiPolygon(issue.getBounds()); return toPolygon(issue.getBounds()); }