Frage

Ist es möglich, ein com.vividsolutions.jts.geom.Geometry (oder eine Unterklasse davon) in eine Klasse zu konvertieren, die java.awt.Shape implementiert? Welche Bibliothek oder Methode kann ich nutzen, um dieses Ziel zu erreichen?

War es hilfreich?

Lösung

Nach:

http: //lists.jump-project .org / pipermail / JTS-devel / 2007-Mai / 001954.html

Es gibt eine Klasse:

com.vividsolutions.jump.workbench.ui.renderer.java2D.Java2DConverter

was kann es?

Andere Tipps

Haben Sie auch einen Blick auf Shapewriter von der JTS-Bibliothek zur Verfügung gestellt. Ich habe den folgenden Code snipped zu JTS Geometrieobjekten in eine AWT-Form zu umwandeln.

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Shape;

import javax.swing.JFrame;
import javax.swing.JPanel;

import com.vividsolutions.jts.awt.ShapeWriter;
import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.geom.GeometryFactory;
import com.vividsolutions.jts.geom.LineString;
import com.vividsolutions.jts.geom.Polygon;

public class Paint extends JPanel{
    public void paint(Graphics g) {

        Coordinate[] coords  = new Coordinate[] {new Coordinate(400, 0),  new Coordinate(200, 200),  new Coordinate(400, 400), new Coordinate(600, 200), new Coordinate(400, 0) };
        Polygon polygon = new GeometryFactory().createPolygon(coords);

        LineString ls = new GeometryFactory().createLineString(new Coordinate[] {new Coordinate(20, 20),  new Coordinate(200, 20)});

        ShapeWriter sw = new ShapeWriter();
        Shape polyShape = sw.toShape(polygon);
        Shape linShape = sw.toShape(ls);

        ((Graphics2D) g).draw(polyShape);
        ((Graphics2D) g).draw(linShape);


    }
    public static void main(String[] args) {
        JFrame f = new JFrame();
        f.getContentPane().add(new Paint());
        f.setSize(700, 700);
        f.setVisible(true);
    }
}

Edit: Das Ergebnis sieht aus wie dieses Bild Visualisierung von JTS Geometrieobjekten in AWT

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top