从数组列表点创建多边形 - 坐标序列?

时间:2017-07-26 12:20:32

标签: java gis geotools

我有一个带坐标的数组列表:

List<Coordinate>  coords;

我想根据这些值创建一个多边形。

我在尝试:

GeometryFactory geometryFactory = new GeometryFactory();
Polygon polyg = geometryFactory.createPolygon(coords);

但它表明它需要CoordinateSequence:

The method createPolygon(CoordinateSequence) in the type GeometryFactory is not applicable for the arguments (List<Coordinate>)

如果我尝试创建一个CoordinateSequence,它会显示一些方法,我不知道如何继续(或者无论如何都需要序列)。

1 个答案:

答案 0 :(得分:1)

您也可以使用点数组。

有关示例,请参阅enter image description here

以下是一些示例代码:

  ArrayList<Coordinate> points = new ArrayList<Coordinate>();
  points.add(new Coordinate(longitude, latitude));
  ...  
  points.add(new Coordinate(lon, lat));
  ...
  //make sure to close the linear ring
  points.add(new Coordinate(longitude, latitude));
  poly = geometryFactory.createPolygon((Coordinate[]) points.toArray(new Coordinate[] {}));
  valid = poly.isValid();