2017-07-26 3 views
0

Ich habe ein Array-Liste mit den Koordinaten:Polygon aus Array-Listenpunkten erstellen - Koordinatensequenz?

List<Coordinate> coords; 

Ich möchte ein Polygon erstellen, die auf der Grundlage dieser Werte.

Ich versuche:

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

aber es zeigt, dass es CoordinateSequence will:

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

Wenn ich versuche, eine CoordinateSequence erstellen sie eine bucnh von Methoden zeigt, und ich bin nicht sicher, wie man fortfahren (oder wenn die Sequenz sowieso benötigt wird).

Antwort

1

Sie können auch eine Reihe von Punkten verwenden.

Siehe http://docs.geotools.org/stable/userguide/library/jts/geometry.html für ein Beispiel. Hier

ist ein Beispielcode:

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

Sie meinen, mit 'LinearRing' Nach dem ersten Umwandlung' coords' von 'list' zu' Array' Und 'holes' wir leeren Bereich innerhalb des Polygons bedeuten? ?Vielen Dank! – George

+0

Und um herauszufinden, ob ein Punkt in einem Polygon liegt, kann ich einfach 'point.within (polygon)' verwenden? – George

+0

Ich denke, enthält ist die Methode, die Sie wollen, oder häufig nicht disjunkt wird tatsächlich verwendet. –

Verwandte Themen