private void initComponents() { canvas = new Canvas(); getContentPane().add(canvas); }
@Override protected void paintComponent(Graphics g) { if (!elements.isEmpty()) { setTransform(); Graphics2D g2 = (Graphics2D) g; g2.setStroke(new BasicStroke(2.0f)); for (Element e : elements) { g2.setColor(e.color); if (e.geom instanceof Coordinate) { drawCoordinate(g2, (Coordinate) e.geom); } else if (e.geom instanceof Geometry) { drawGeometry(g2, (Geometry) e.geom); } } } }
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 drawGeometry(Graphics2D g2, Geometry geom) { Coordinate[] coords; switch (GeomType.get(geom)) { case POINT: case LINESTRING: drawVertices(g2, geom.getCoordinates()); break; case POLYGON: drawPolygon(g2, (Polygon) geom); break; case MULTIPOINT: case MULTILINESTRING: for (int i = 0; i < geom.getNumGeometries(); i++) { drawVertices(g2, geom.getGeometryN(i).getCoordinates()); } break; case MULTIPOLYGON: for (int i = 0; i < geom.getNumGeometries(); i++) { Polygon px = (Polygon) geom.getGeometryN(i); drawPolygon(g2, px); } break; } }
private void drawGeometry(Graphics2D g2, Geometry geom) { Coordinate[] coords; switch (GeomType.get(geom)) { case POINT: case LINESTRING: drawVertices(g2, geom.getCoordinates()); break; case POLYGON: drawPolygon(g2, (Polygon) geom); break; case MULTIPOINT: case MULTILINESTRING: for (int i = 0; i < geom.getNumGeometries(); i++) { drawVertices(g2, geom.getGeometryN(i).getCoordinates()); } break; case MULTIPOLYGON: for (int i = 0; i < geom.getNumGeometries(); i++) { Polygon px = (Polygon) geom.getGeometryN(i); drawPolygon(g2, px); } break; } }
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); } }
@Override protected void paintComponent(Graphics g) { if (!elements.isEmpty()) { setTransform(); Graphics2D g2 = (Graphics2D) g; g2.setStroke(new BasicStroke(2.0f)); for (Element e : elements) { g2.setColor(e.color); if (e.geom instanceof Coordinate) { drawCoordinate(g2, (Coordinate) e.geom); } else if (e.geom instanceof Geometry) { drawGeometry(g2, (Geometry) e.geom); } } } }
private void initComponents() { canvas = new Canvas(); getContentPane().add(canvas); }
private void drawPolygon(Graphics2D g2, Polygon poly) { Coordinate[] coords = poly.getExteriorRing().getCoordinates(); drawVertices(g2, coords); for (int i = 0; i < poly.getNumInteriorRing(); i++) { coords = poly.getInteriorRingN(i).getCoordinates(); drawVertices(g2, coords); } }
private void drawPolygon(Graphics2D g2, Polygon poly) { Coordinate[] coords = poly.getExteriorRing().getCoordinates(); drawVertices(g2, coords); for (int i = 0; i < poly.getNumInteriorRing(); i++) { coords = poly.getInteriorRingN(i).getCoordinates(); drawVertices(g2, coords); } }