diff --git a/search-core/src/main/java/org/opengroup/osdu/search/util/GeoQueryBuilder.java b/search-core/src/main/java/org/opengroup/osdu/search/util/GeoQueryBuilder.java index 29bacdac31bac62e27de7209114ed208aad8a812..021f673dfba67586c72c431f06d5059481312f35 100644 --- a/search-core/src/main/java/org/opengroup/osdu/search/util/GeoQueryBuilder.java +++ b/search-core/src/main/java/org/opengroup/osdu/search/util/GeoQueryBuilder.java @@ -141,15 +141,13 @@ public final class GeoQueryBuilder { } private static Map<String, Object> createMultiPolygon(List<Polygon> polygons) { - Map<String, Object> geometryCollection = new HashMap<>(); - geometryCollection.put("type", "GeometryCollection"); + Map<String, Object> multiPolygon = new HashMap<>(); + multiPolygon.put("type", "MultiPolygon"); - List<Map<String, Object>> geometriesList = new ArrayList<>(); + List<Object> multiPolygonCoordinates = new ArrayList<>(); for (Polygon polygon : polygons) { checkPolygon(polygon); - Map<String, Object> multiPolygon = new HashMap<>(); - multiPolygon.put("type", "MultiPolygon"); List<List<List<Double>>> polygonCoordinates = new ArrayList<>(); List<List<Double>> coordinates = new ArrayList<>(); @@ -160,14 +158,12 @@ public final class GeoQueryBuilder { polygonCoordinates.add(coordinates); - multiPolygon.put("coordinates", polygonCoordinates); - - geometriesList.add(multiPolygon); + multiPolygonCoordinates.add(polygonCoordinates); } - geometryCollection.put("geometries", geometriesList); + multiPolygon.put("coordinates", multiPolygonCoordinates); - return geometryCollection; + return multiPolygon; } private Query getIntersectionQuery(SpatialFilter spatialFilter) { diff --git a/search-core/src/test/resources/testqueries/expected/intersection-query.json b/search-core/src/test/resources/testqueries/expected/intersection-query.json index d09a13955e87ea0ecae039605e285e4183879c29..2531cfae1170131dcd4fd80bd0ea815b53f9a777 100644 --- a/search-core/src/test/resources/testqueries/expected/intersection-query.json +++ b/search-core/src/test/resources/testqueries/expected/intersection-query.json @@ -1,9 +1,9 @@ { "geo_shape":{ "data.SpatialLocation.Wgs84Coordinates":{ - "shape":"{geometries=[{coordinates=[[[-8.61, 1.02], [-2.48, 1.02], [-2.48, 10.74], [-8.61, 10.74], [-8.61, 1.02]]], type=MultiPolygon}], type=GeometryCollection}", + "shape":"{coordinates=[[[[-8.61, 1.02], [-2.48, 1.02], [-2.48, 10.74], [-8.61, 10.74], [-8.61, 1.02]]]], type=MultiPolygon}", "relation":"intersects" }, "ignore_unmapped":true } -} \ No newline at end of file +}