How to convert JTS-Geometry to AWT-Shape?

Is it possible to convert a com.vividsolutions.jts.geom.Geometry (or subclass) into a class that implements java.awt.Shape ? What library or method can be used to achieve this?

+4
source share
2 answers

In accordance with:

http://lists.jump-project.org/pipermail/jts-devel/2007-May/001954.html

There is a class:

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

who can do this?

+2
source

Also see ShapeWriter provided by the JTS library. I used the following code to convert jts geometry objects to awt form.

 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: the result looks like this: Visualization of jts geometry objects in awt

+3
source

Source: https://habr.com/ru/post/1277132/