Search in sources :

Example 1 with CoordinatesBuilder

use of org.elasticsearch.common.geo.builders.CoordinatesBuilder in project elasticsearch by elastic.

the class ShapeBuilderTests method testMultiLineString.

public void testMultiLineString() {
    ShapeBuilders.newMultiLinestring().linestring(new LineStringBuilder(new CoordinatesBuilder().coordinate(-100.0, 50.0).coordinate(50.0, 50.0).coordinate(50.0, 20.0).coordinate(-100.0, 20.0))).linestring(new LineStringBuilder(new CoordinatesBuilder().coordinate(-100.0, 20.0).coordinate(50.0, 20.0).coordinate(50.0, 0.0).coordinate(-100.0, 0.0))).build();
    // LineString that needs to be wrapped
    ShapeBuilders.newMultiLinestring().linestring(new LineStringBuilder(new CoordinatesBuilder().coordinate(150.0, 60.0).coordinate(200.0, 60.0).coordinate(200.0, 40.0).coordinate(150.0, 40.0))).linestring(new LineStringBuilder(new CoordinatesBuilder().coordinate(150.0, 20.0).coordinate(200.0, 20.0).coordinate(200.0, 0.0).coordinate(150.0, 0.0))).build();
}
Also used : CoordinatesBuilder(org.elasticsearch.common.geo.builders.CoordinatesBuilder) LineStringBuilder(org.elasticsearch.common.geo.builders.LineStringBuilder)

Example 2 with CoordinatesBuilder

use of org.elasticsearch.common.geo.builders.CoordinatesBuilder in project elasticsearch by elastic.

the class ShapeBuilderTests method testBoundaryShapeWithTangentialHole.

public void testBoundaryShapeWithTangentialHole() {
    // test a shape with one tangential (shared) vertex for each hole (should pass)
    PolygonBuilder builder = ShapeBuilders.newPolygon(new CoordinatesBuilder().coordinate(-177, 10).coordinate(176, 15).coordinate(172, 0).coordinate(176, -15).coordinate(-177, -10).coordinate(-177, 10));
    builder.hole(new LineStringBuilder(new CoordinatesBuilder().coordinate(-177, 10).coordinate(-178, -10).coordinate(-180, -5).coordinate(-180, 5).coordinate(-177, 10)));
    builder.hole(new LineStringBuilder(new CoordinatesBuilder().coordinate(172, 0).coordinate(176, 10).coordinate(176, -5).coordinate(172, 0)));
    Shape shape = builder.close().build();
    assertMultiPolygon(shape);
}
Also used : CoordinatesBuilder(org.elasticsearch.common.geo.builders.CoordinatesBuilder) Shape(org.locationtech.spatial4j.shape.Shape) PolygonBuilder(org.elasticsearch.common.geo.builders.PolygonBuilder) LineStringBuilder(org.elasticsearch.common.geo.builders.LineStringBuilder)

Example 3 with CoordinatesBuilder

use of org.elasticsearch.common.geo.builders.CoordinatesBuilder in project elasticsearch by elastic.

the class ShapeBuilderTests method testShapeWithEdgeAlongDateline.

public void testShapeWithEdgeAlongDateline() {
    // test case 1: test the positive side of the dateline
    PolygonBuilder builder = ShapeBuilders.newPolygon(new CoordinatesBuilder().coordinate(180, 0).coordinate(176, 4).coordinate(180, -4).coordinate(180, 0));
    Shape shape = builder.close().build();
    assertPolygon(shape);
    // test case 2: test the negative side of the dateline
    builder = ShapeBuilders.newPolygon(new CoordinatesBuilder().coordinate(-176, 4).coordinate(-180, 0).coordinate(-180, -4).coordinate(-176, 4));
    shape = builder.close().build();
    assertPolygon(shape);
}
Also used : CoordinatesBuilder(org.elasticsearch.common.geo.builders.CoordinatesBuilder) Shape(org.locationtech.spatial4j.shape.Shape) PolygonBuilder(org.elasticsearch.common.geo.builders.PolygonBuilder)

Example 4 with CoordinatesBuilder

use of org.elasticsearch.common.geo.builders.CoordinatesBuilder in project elasticsearch by elastic.

the class ShapeBuilderTests method testBoundaryShape.

/**
     * Test an enveloping polygon around the max mercator bounds
     */
public void testBoundaryShape() {
    PolygonBuilder builder = ShapeBuilders.newPolygon(new CoordinatesBuilder().coordinate(-180, 90).coordinate(180, 90).coordinate(180, -90).coordinate(-180, 90));
    Shape shape = builder.close().build();
    assertPolygon(shape);
}
Also used : CoordinatesBuilder(org.elasticsearch.common.geo.builders.CoordinatesBuilder) Shape(org.locationtech.spatial4j.shape.Shape) PolygonBuilder(org.elasticsearch.common.geo.builders.PolygonBuilder)

Example 5 with CoordinatesBuilder

use of org.elasticsearch.common.geo.builders.CoordinatesBuilder in project elasticsearch by elastic.

the class ShapeBuilderTests method testPolygonWrapping.

public void testPolygonWrapping() {
    Shape shape = ShapeBuilders.newPolygon(new CoordinatesBuilder().coordinate(-150.0, 65.0).coordinate(-250.0, 65.0).coordinate(-250.0, -65.0).coordinate(-150.0, -65.0).close()).build();
    assertMultiPolygon(shape);
}
Also used : CoordinatesBuilder(org.elasticsearch.common.geo.builders.CoordinatesBuilder) Shape(org.locationtech.spatial4j.shape.Shape)

Aggregations

CoordinatesBuilder (org.elasticsearch.common.geo.builders.CoordinatesBuilder)27 PolygonBuilder (org.elasticsearch.common.geo.builders.PolygonBuilder)18 LineStringBuilder (org.elasticsearch.common.geo.builders.LineStringBuilder)14 Shape (org.locationtech.spatial4j.shape.Shape)13 InvalidShapeException (org.locationtech.spatial4j.exception.InvalidShapeException)6 Coordinate (com.vividsolutions.jts.geom.Coordinate)4 LineString (com.vividsolutions.jts.geom.LineString)3 Polygon (com.vividsolutions.jts.geom.Polygon)3 ElasticsearchGeoAssertions.assertMultiLineString (org.elasticsearch.test.hamcrest.ElasticsearchGeoAssertions.assertMultiLineString)3 ElasticsearchGeoAssertions.assertMultiPolygon (org.elasticsearch.test.hamcrest.ElasticsearchGeoAssertions.assertMultiPolygon)3 ElasticsearchGeoAssertions.assertPolygon (org.elasticsearch.test.hamcrest.ElasticsearchGeoAssertions.assertPolygon)3 SearchResponse (org.elasticsearch.action.search.SearchResponse)2 MultiPolygonBuilder (org.elasticsearch.common.geo.builders.MultiPolygonBuilder)2 ConvexHull (com.vividsolutions.jts.algorithm.ConvexHull)1 Geometry (com.vividsolutions.jts.geom.Geometry)1 ElasticsearchException (org.elasticsearch.ElasticsearchException)1 ElasticsearchParseException (org.elasticsearch.ElasticsearchParseException)1 CreateIndexRequestBuilder (org.elasticsearch.action.admin.indices.create.CreateIndexRequestBuilder)1 BytesReference (org.elasticsearch.common.bytes.BytesReference)1 CoordinateCollection (org.elasticsearch.common.geo.builders.CoordinateCollection)1