【问题标题】:create polygon from array list points - coordinate sequence?从数组列表点创建多边形 - 坐标序列?
【发布时间】:2017-07-26 12:20:32
【问题描述】:

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

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,它会显示大量方法,但我不确定如何继续(或者是否仍需要序列)。

【问题讨论】:

    标签: java gis geotools


    【解决方案1】:

    您也可以使用点数组。

    有关示例,请参阅 http://docs.geotools.org/stable/userguide/library/jts/geometry.html

    这里是一些示例代码:

      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();
    

    【讨论】:

    • 您的意思是使用LinearRing?首先将coordsList 转换为Arrayholes 是指多边形内的空白区域?谢谢!
    • 为了确定一个点是否位于多边形中,我可以简单地使用point.within(polygon)?
    • 我认为 contains 是您想要的方法,或者实际使用通常不脱节。
    • 好的,我先尝试了LinearRing,然后我使用了within,它似乎工作正常! (关于孔洞,我们的意思是多边形区域内的空白区域?)
    • 洞是多边形内部的空位,可以包含它们本身的多边形
    猜你喜欢
    • 2013-08-28
    • 2019-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-13
    • 2014-12-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多