Pergunta

É possível converter um com.vividsolutions.jts.geom.Geometry (ou uma subclasse dela) em uma classe que implementa java.awt.Shape? Qual biblioteca ou método que eu possa usar para atingir esse objetivo?

Foi útil?

Solução

De acordo com:

http: //lists.jump-project .org / Pipermail / JTS-devel / 2007 a maio / 001954.html

Há uma classe:

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

que pode fazê-lo?

Outras dicas

Também dê uma olhada em ShapeWriter fornecido pela biblioteca JTS. Eu usei o seguinte código cortou para converter jts geometria objetos em uma forma 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);
    }
}

Edit: Os olhares resultado como esta imagem Visualização de jts geometria objetos em awt

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top