Example usage for com.google.common.geometry S2Polygon numLoops

List of usage examples for com.google.common.geometry S2Polygon numLoops

Introduction

In this page you can find the example usage for com.google.common.geometry S2Polygon numLoops.

Prototype

public int numLoops() 

Source Link

Usage

From source file:com.bc.geometry.s2.S2Util.java

public static double[][] toXYZArray(S2Polygon polygon) {
    final List<S2Point> vertices = new ArrayList<>();
    final int numLoops = polygon.numLoops();
    for (int i = 0; i < numLoops; i++) {
        final S2Loop loop = polygon.loop(i);
        final int numVertices = loop.numVertices();
        for (int k = 0; k < numVertices; k++) {
            vertices.add(loop.vertex(k));
        }//  w w w  .ja va  2  s.co m
    }

    final int numVertices = vertices.size();
    final double[][] xyzArray = new double[numVertices][3];
    for (int i = 0; i < numVertices; i++) {
        final double[] vector = new double[3];
        final S2Point s2Point = vertices.get(i);
        vector[0] = s2Point.getX();
        vector[1] = s2Point.getY();
        vector[2] = s2Point.getZ();

        xyzArray[i] = vector;
    }

    return xyzArray;
}

From source file:com.bc.geometry.s2.S2WKTWriter.java

private static String writePolygonWkt(S2Polygon polygon) {
    final StringBuilder builder = new StringBuilder();
    builder.append("POLYGON((");
    final int numLoops = polygon.numLoops();
    for (int i = 0; i < numLoops; i++) {
        final S2Loop loop = polygon.loop(i);
        final int numVertices = loop.numVertices();
        for (int k = 0; k < numVertices; k++) {
            appendWktPoint(loop.vertex(k), builder);
            builder.append(",");
        }//from w w  w  . j  a v  a2 s .c  om
        appendWktPoint(loop.vertex(0), builder);
    }

    builder.append("))");
    return builder.toString();
}

From source file:com.bc.fiduceo.geometry.s2.BcS2Polygon.java

static ArrayList<Point> extractPoints(S2Polygon googlePolygon) {
    final ArrayList<Point> coordinates = new ArrayList<>();
    final int numLoops = googlePolygon.numLoops();
    for (int i = 0; i < numLoops; i++) {
        final S2Loop loop = googlePolygon.loop(i);
        final int numVertices = loop.numVertices();
        for (int k = 0; k < numVertices; k++) {
            final S2Point googlePoint = loop.vertex(k);
            coordinates.add(BcS2Point.createFrom(googlePoint));
        }//from   w  w w  .  j  ava  2s  .  c o  m

        // close loop - outside world expects this tb 2016-03-03
        final S2Point googlePoint = loop.vertex(0);
        coordinates.add(BcS2Point.createFrom(googlePoint));
    }
    return coordinates;
}