Comment convertir une géométrie JTS en une forme AWT?
Question
Est-il possible de convertir un com.vividsolutions.jts.geom.Geometry
(ou une sous-classe de celui-ci) en une classe qui implémente java.awt.Shape
? Quelle bibliothèque ou méthode puis-je utiliser pour atteindre cet objectif?
La solution
Selon:
http: //lists.jump-project .org / pipermail / jts-devel / 2007-May / 001954.html
Il y a une classe:
com.vividsolutions.jump.workbench.ui.renderer.java2D.Java2DConverter
qui peut le faire?
Autres conseils
Jetez également un coup d'oeil à ShapeWriter fourni par la bibliothèque JTS. J'ai utilisé le code suivant pour convertir les objets de géométrie jts en une forme awt.
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);
}
}
Modifier: le résultat ressemble à cette image
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow