Wie kann ich eine JTS-Geometrie in eine AWT-Form umwandeln?
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?
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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow