List of usage examples for com.google.common.geometry S2Polyline numVertices
int numVertices
To view the source code for com.google.common.geometry S2Polyline numVertices.
Click Source Link
From source file:com.bc.geometry.s2.S2Util.java
public static double[][] toXYZArray(S2Polyline polyline) { final int numVertices = polyline.numVertices(); final double[][] xyzArray = new double[numVertices][3]; for (int i = 0; i < numVertices; i++) { final double[] vector = new double[3]; final S2Point s2Point = polyline.vertex(i); vector[0] = s2Point.getX(); vector[1] = s2Point.getY(); vector[2] = s2Point.getZ(); xyzArray[i] = vector;/*from w w w.jav a 2s. co m*/ } return xyzArray; }
From source file:com.bc.geometry.s2.S2WKTWriter.java
private static String writeLinestringWKT(S2Polyline geometry) { final int numVertices = geometry.numVertices(); if (numVertices < 2) { throw new IllegalArgumentException("Linestring contains less that 2 vertices."); }//from w ww.j av a2 s . c o m final StringBuilder builder = new StringBuilder(); builder.append("LINESTRING("); for (int i = 0; i < numVertices; i++) { appendWktPoint(geometry.vertex(i), builder); if (i != numVertices - 1) { builder.append(","); } } builder.append(")"); return builder.toString(); }
From source file:com.bc.fiduceo.geometry.s2.BcS2MultiLineString.java
@Override public Point[] getCoordinates() { List<Point> pointList = new ArrayList<>(); for (S2Polyline s2Polyline : s2PolylineList) { int i = s2Polyline.numVertices(); for (int j = 0; j < i; j++) { pointList.add(BcS2Point.createFrom(s2Polyline.vertex(j))); }// w ww. ja v a2 s.co m } return pointList.toArray(new Point[pointList.size()]); }
From source file:com.bc.fiduceo.geometry.s2.BcS2MultiLineString.java
@Override public boolean isValid() { boolean valid = false; for (S2Polyline s2Polyline : s2PolylineList) { int numVertices = s2Polyline.numVertices(); ArrayList<S2Point> s2PointArrayList = new ArrayList<>(); for (int i = 0; i < numVertices; i++) { s2PointArrayList.add(s2Polyline.vertex(i)); }// w w w. j a va 2 s .c o m valid = s2Polyline.isValid(s2PointArrayList); } return valid; }
From source file:com.bc.fiduceo.geometry.s2.BcS2MultiLineString.java
@Override public boolean isEmpty() { boolean isInitialPointsZero = false; if (s2PolylineList.isEmpty()) { return true; }/*from w ww. j a v a 2 s. c om*/ for (S2Polyline s2Polyline : s2PolylineList) { if (s2Polyline == null) { return true; } int numVertices = s2Polyline.numVertices(); if (numVertices > 0) { for (int i = 0; i < numVertices; i++) { S2Point vertex = s2Polyline.vertex(i); isInitialPointsZero = vertex.getX() == 0 && vertex.getY() == 0 && vertex.getZ() == 0; if (!isInitialPointsZero) { return false; } } } } return isInitialPointsZero; }
From source file:com.bc.fiduceo.geometry.s2.BcS2TimeAxis.java
@Override public TimeInterval getIntersectionTime(Polygon polygon) { final S2Polygon inner = (S2Polygon) polygon.getInner(); List<S2Polyline> s2Polylines = inner.intersectWithPolyLine(polyline); if (s2Polylines.isEmpty()) { return null; }// ww w.j a v a 2s. c o m if (s2Polylines.size() > 1) { throw new RuntimeException("More than one intersection, not implemented yet!"); } final S2Polyline intersection = s2Polylines.get(0); final S2Point intersectionStartPoint = intersection.vertex(0); final long offsetTime = calculateLineDuration(intersectionStartPoint); final S2Point intersectionEndPoint = intersection.vertex(intersection.numVertices() - 1); final long totalTime = calculateLineDuration(intersectionEndPoint); final long duration = totalTime - offsetTime; final long startMillis = startTime.getTime() + offsetTime; return new TimeInterval(TimeUtils.create(startMillis), TimeUtils.create(startMillis + duration)); }