/** * 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)); }
@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); }
@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()); }
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 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 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 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)); }
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); }
@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); }
@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); }
protected static MultiPointBuilder parseMultiPoint(CoordinateNode coordinates) { validateMultiPointNode(coordinates); CoordinatesBuilder points = new CoordinatesBuilder(); for (CoordinateNode node : coordinates.children) { points.coordinate(node.coordinate); } return new MultiPointBuilder(points.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()); }
@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()); }
private static List<Coordinate> parseCoordinateList(StreamTokenizer stream, final boolean ignoreZValue) throws IOException, ElasticsearchParseException { CoordinatesBuilder coordinates = new CoordinatesBuilder(); boolean isOpenParen = false; if (isNumberNext(stream) || (isOpenParen = nextWord(stream).equals(LPAREN))) { coordinates.coordinate(parseCoordinate(stream, ignoreZValue)); } 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)); } if (isOpenParen && nextCloser(stream).equals(RPAREN) == false) { throw new ElasticsearchParseException("expected: " + RPAREN + " but found: " + tokenString(stream), stream.lineno()); } } return coordinates.build(); }
private static List<Coordinate> parseCoordinateList(StreamTokenizer stream, final boolean ignoreZValue) throws IOException, ElasticsearchParseException { CoordinatesBuilder coordinates = new CoordinatesBuilder(); boolean isOpenParen = false; if (isNumberNext(stream) || (isOpenParen = nextWord(stream).equals(LPAREN))) { coordinates.coordinate(parseCoordinate(stream, ignoreZValue)); } 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)); } if (isOpenParen && nextCloser(stream).equals(RPAREN) == false) { throw new ElasticsearchParseException("expected: " + RPAREN + " but found: " + tokenString(stream), stream.lineno()); } } return coordinates.build(); }