2017-07-26 6 views
0

J'ai une liste de tableau avec les coordonnées:créer un polygone à partir de points de liste de tableaux - séquence de coordonnées?

List<Coordinate> coords; 

Je veux créer un polygone à partir de ces valeurs.

Je suis en train:

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

mais il montre qu'il veut CoordinateSequence:

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

Si je tente de créer un CoordinateSequence il montre une bucnh de méthodes et je ne suis pas sûr de savoir comment continuer (ou si la séquence est nécessaire de toute façon).

Répondre

1

Vous pouvez également utiliser un tableau de points.

Voir http://docs.geotools.org/stable/userguide/library/jts/geometry.html pour un exemple.

Voici quelques exemples de code:

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

Vous voulez dire en utilisant 'LinearRing' Après la première conversion' coords' de 'list' à' Array' Et 'holes' on entend la zone vide à l'intérieur du polygone? ?Merci! – George

+0

Et afin de savoir si un point se trouve dans un polygone, je peux simplement utiliser 'point.within (polygon)'? – George

+0

Je pense que contient est la méthode que vous voulez, ou généralement pas disjoint est réellement utilisé. –