private void setTransform() { Envelope env = new Envelope(); for (int i = 0; i < elements.size(); i++) { Object obj = elements.get(i).geom; if (obj instanceof Geometry) { Geometry g = (Geometry) obj; env.expandToInclude(g.getEnvelopeInternal()); } else if (obj instanceof Coordinate) { Coordinate c = (Coordinate) obj; env.expandToInclude(c); } } Rectangle visRect = getVisibleRect(); Rectangle drawingRect = new Rectangle( visRect.x + MARGIN, visRect.y + MARGIN, visRect.width - 2 * MARGIN, visRect.height - 2 * MARGIN); double scale = Math.min(drawingRect.getWidth() / env.getWidth(), drawingRect.getHeight() / env.getHeight()); double xoff = MARGIN - scale * env.getMinX(); double yoff = MARGIN + env.getMaxY() * scale; tr = new AffineTransform(scale, 0, 0, -scale, xoff, yoff); } }
private void setTransform() { Envelope env = new Envelope(); for (int i = 0; i < elements.size(); i++) { Object obj = elements.get(i).geom; if (obj instanceof Geometry) { Geometry g = (Geometry) obj; env.expandToInclude(g.getEnvelopeInternal()); } else if (obj instanceof Coordinate) { Coordinate c = (Coordinate) obj; env.expandToInclude(c); } } Rectangle visRect = getVisibleRect(); Rectangle drawingRect = new Rectangle( visRect.x + MARGIN, visRect.y + MARGIN, visRect.width - 2 * MARGIN, visRect.height - 2 * MARGIN); double scale = Math.min(drawingRect.getWidth() / env.getWidth(), drawingRect.getHeight() / env.getHeight()); double xoff = MARGIN - scale * env.getMinX(); double yoff = MARGIN + env.getMaxY() * scale; tr = new AffineTransform(scale, 0, 0, -scale, xoff, yoff); } }