是否可以将com.vividsolutions.jts.geom.Geometry
(或其子类)转换为实现的类java.awt.Shape
?我可以使用哪种库或方法来实现该目标?
还可以看一下JTS库提供的ShapeWriter。我使用下面的代码片段将jts几何对象转换为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); } }
编辑:结果看起来像这张图片