Как получить вершины объекта в геоинструментах

Может ли кто-нибудь показать мне, как получить вершины функции с помощью java geotools API?

В моем случае у меня есть полигональный слой в postgis, я могу запросить все функции этого слоя, и мне нужно знать вершины каждой функции.

        SimpleFeatureSource featureSource = pgDatastore.getFeatureSource("hb_thuadat");
        Filter filter = CQL.toFilter("sothua = 10");
        SimpleFeatureCollection collection = featureSource.getFeatures( filter );
        System.out.print("tong so:"+ collection.size());

        FeatureIterator iter=collection.features();
        while( iter.hasNext() ){
            Feature feature = iter.next();
            System.out.println( feature.getIdentifier());
            //how to get vertices of feature here???
        }

Любая помощь приветствуется! Благодарить!


person Truong Pham    schedule 25.10.2013    source источник


Ответы (2)


Преобразовав ваш объект feature в тип SimpleFeature, вы сможете извлечь значение геометрии, как показано ниже:

SimpleFeature sp = DataUtilities.simple(feature);
Geometry geom = (Geometry) sp.getDefaultGeometry();

Вершины можно получить следующим образом:
Coordinate[] array_of_coords = geom.getCoordinates(); System.out.println(array_of_coords[0].x);//X Coordinate System.out.println(array_of_coords[0].y);//Y Coordinate

person learningloop    schedule 25.10.2013

Я сам нахожу решение по этому коду

            Feature feature = iter.next();
            SimpleFeature sfeature = (SimpleFeature)feature;
            Geometry g = (Geometry)sfeature.getAttribute("the_geom");
            // System.out.print(g.getCoordinates().length);
            Coordinate coor = g.getCoordinate();
            System.out.println("x: " + coor.x);
            System.out.println("y: " + coor.y);
person Truong Pham    schedule 25.10.2013