Java 当我们有坐标列表时,如何在JTS中创建多边形?

Java 当我们有坐标列表时,如何在JTS中创建多边形?,java,geometry,computational-geometry,jts,Java,Geometry,Computational Geometry,Jts,我们可以使用坐标列表创建线字符串,如下所示: Geometry g1 = new GeometryFactory().createLineString(coordinates); // Create a GeometryFactory if you don't have one already GeometryFactory geometryFactory = new GeometryFactory(); // Simply pass an array of Coordinate

我们可以使用坐标列表创建线字符串,如下所示:

     Geometry g1 = new GeometryFactory().createLineString(coordinates);
// Create a GeometryFactory if you don't have one already
GeometryFactory geometryFactory = new GeometryFactory();

// Simply pass an array of Coordinate or a CoordinateSequence to its method
Polygon polygonFromCoordinates = geometryFactory.createPolygon(coordinates);
如何使用坐标列表创建多边形


提前感谢。

您看过他们的文档了吗? 看看-


我认为这是非常直截了当的。我希望这能解决你的问题

使用以下代码行:

 GeometryFactory fact = new GeometryFactory();
 LinearRing linear = new GeometryFactory().createLinearRing(coordinates);
 Polygon poly = new Polygon(linear, null, fact);

我希望这会有所帮助:)

被接受的答案在2012年可能仍然有效(仍然尴尬),但现在你真的应该这样做:

     Geometry g1 = new GeometryFactory().createLineString(coordinates);
// Create a GeometryFactory if you don't have one already
GeometryFactory geometryFactory = new GeometryFactory();

// Simply pass an array of Coordinate or a CoordinateSequence to its method
Polygon polygonFromCoordinates = geometryFactory.createPolygon(coordinates);

但它是用3D创建多边形。如何强制到2D?JTS是2D。坐标对象有第三个字段,但始终为NaN。坐标在JTS中不是几何图形。点是,它只有x和y。是的,bugmenot123是正确的,在当前版本的JTS中,您不需要创建线性来创建多边形,一个简单的createPolygon就足够了。请记住,坐标必须形成一个闭合环(第一个点和最后一个点相同),否则会出现异常。如果要设置特定的SRID,则必须以以下方式创建GeometryFactory:GeometryFactory fac=new GeometryFactory(new PrecisionModel(),SRID);,将srid替换为所需的srid。链接已断开您要查找的链接已移动