@Override public ShapeBuilder getBuilder(CoordinateNode coordinates, DistanceUnit.Distance radius, Orientation orientation, boolean coerce) { validate(coordinates, coerce); CoordinatesBuilder coordinatesBuilder = new CoordinatesBuilder(); for (CoordinateNode node : coordinates.children) { coordinatesBuilder.coordinate(node.coordinate); } return new MultiPointBuilder(coordinatesBuilder.build()); }
/** * Create a new PolygonBuilder * @return a new {@link PolygonBuilder} */ public static PolygonBuilder newPolygon(List<Coordinate> shell) { return new PolygonBuilder(new CoordinatesBuilder().coordinates(shell)); }
@Override public ShapeBuilder getBuilder(CoordinateNode coordinates, DistanceUnit.Distance radius, Orientation orientation, boolean coerce) { validate(coordinates, coerce); CoordinatesBuilder line = new CoordinatesBuilder(); for (CoordinateNode node : coordinates.children) { line.coordinate(node.coordinate); } return new LineStringBuilder(line); }
/** * Add a new coordinate to the collection * @param longitude longitude of the coordinate * @param latitude latitude of the coordinate * @return this */ public CoordinatesBuilder coordinate(double longitude, double latitude) { return this.coordinate(new Coordinate(longitude, latitude)); }
/** * Add an array of coordinates to the current coordinates * * @param coordinates array of {@link Coordinate}s to add * @return this */ public CoordinatesBuilder coordinates(Coordinate...coordinates) { return this.coordinates(Arrays.asList(coordinates)); }
public LineStringBuilder(CoordinatesBuilder coordinates) { this(coordinates.build()); }
@Override public ShapeBuilder getBuilder(CoordinateNode coordinates, DistanceUnit.Distance radius, Orientation orientation, boolean coerce) { validate(coordinates, coerce); CoordinatesBuilder line = new CoordinatesBuilder(); for (CoordinateNode node : coordinates.children) { line.coordinate(node.coordinate); } return new LineStringBuilder(line); }
/** * Add a new coordinate to the collection * @param longitude longitude of the coordinate * @param latitude latitude of the coordinate * @return this */ public CoordinatesBuilder coordinate(double longitude, double latitude) { return this.coordinate(new Coordinate(longitude, latitude)); }
/** * Add an array of coordinates to the current coordinates * * @param coordinates array of {@link Coordinate}s to add * @return this */ public CoordinatesBuilder coordinates(Coordinate...coordinates) { return this.coordinates(Arrays.asList(coordinates)); }
public LineStringBuilder(CoordinatesBuilder coordinates) { this(coordinates.build()); }
private static List<Coordinate> parseCoordinateList(StreamTokenizer stream, final boolean ignoreZValue, final boolean coerce) throws IOException, ElasticsearchParseException { CoordinatesBuilder coordinates = new CoordinatesBuilder(); boolean isOpenParen = false; if (isNumberNext(stream) || (isOpenParen = nextWord(stream).equals(LPAREN))) { coordinates.coordinate(parseCoordinate(stream, ignoreZValue, coerce)); } if (isOpenParen && nextCloser(stream).equals(RPAREN) == false) { throw new ElasticsearchParseException("expected: [{}]" + RPAREN + " but found: [{}]" + tokenString(stream), stream.lineno()); } while (nextCloserOrComma(stream).equals(COMMA)) { isOpenParen = false; if (isNumberNext(stream) || (isOpenParen = nextWord(stream).equals(LPAREN))) { coordinates.coordinate(parseCoordinate(stream, ignoreZValue, coerce)); } if (isOpenParen && nextCloser(stream).equals(RPAREN) == false) { throw new ElasticsearchParseException("expected: " + RPAREN + " but found: " + tokenString(stream), stream.lineno()); } } return coordinates.build(); }
/** * Add a shallow copy of the polygon to the multipolygon. This will apply the orientation of the * {@link MultiPolygonBuilder} to the polygon if polygon has different orientation. */ public MultiPolygonBuilder polygon(PolygonBuilder polygon) { PolygonBuilder pb = new PolygonBuilder(new CoordinatesBuilder().coordinates(polygon.shell().coordinates(false)), this.orientation); for (LineStringBuilder hole : polygon.holes()) { pb.hole(hole); } this.polygons.add(pb); return this; }
@Override public ShapeBuilder getBuilder(CoordinateNode coordinates, DistanceUnit.Distance radius, Orientation orientation, boolean coerce) { validate(coordinates, coerce); CoordinatesBuilder line = new CoordinatesBuilder(); for (CoordinateNode node : coordinates.children) { line.coordinate(node.coordinate); } return new LineStringBuilder(line); }
/** * Add a new coordinate to the collection * @param longitude longitude of the coordinate * @param latitude latitude of the coordinate * @return this */ public CoordinatesBuilder coordinate(double longitude, double latitude) { return this.coordinate(new Coordinate(longitude, latitude)); }
/** * Add an array of coordinates to the current coordinates * * @param coordinates array of {@link Coordinate}s to add * @return this */ public CoordinatesBuilder coordinates(Coordinate...coordinates) { return this.coordinates(Arrays.asList(coordinates)); }
public LineStringBuilder(CoordinatesBuilder coordinates) { this(coordinates.build()); }
@Override public ShapeBuilder getBuilder(CoordinateNode coordinates, DistanceUnit.Distance radius, Orientation orientation, boolean coerce) { validate(coordinates, coerce); CoordinatesBuilder coordinatesBuilder = new CoordinatesBuilder(); for (CoordinateNode node : coordinates.children) { coordinatesBuilder.coordinate(node.coordinate); } return new MultiPointBuilder(coordinatesBuilder.build()); }
/** * Create a new PolygonBuilder * @return a new {@link PolygonBuilder} */ public static PolygonBuilder newPolygon(List<Coordinate> shell) { return new PolygonBuilder(new CoordinatesBuilder().coordinates(shell)); }
protected static LineStringBuilder parseLineString(CoordinateNode coordinates) { /** * Per GeoJSON spec (http://geojson.org/geojson-spec.html#linestring) * "coordinates" member must be an array of two or more positions * LineStringBuilder should throw a graceful exception if < 2 coordinates/points are provided */ if (coordinates.children.size() < 2) { throw new ElasticsearchParseException("invalid number of points in LineString (found [{}] - must be >= 2)", coordinates.children.size()); } CoordinatesBuilder line = new CoordinatesBuilder(); for (CoordinateNode node : coordinates.children) { line.coordinate(node.coordinate); } return ShapeBuilders.newLineString(line); }
/** * Add a new coordinate to the collection * @param longitude longitude of the coordinate * @param latitude latitude of the coordinate * @return this */ public CoordinatesBuilder coordinate(double longitude, double latitude) { return this.coordinate(new Coordinate(longitude, latitude)); }