diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/model/geojson/jackson/FeatureCollectionSerializer.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/model/geojson/jackson/FeatureCollectionSerializer.java index f5d412a042655bcabed7e0840c61e5f4d8785d7c..dc78521257d6a4d4c87a0207fbc9104879648ff4 100644 --- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/model/geojson/jackson/FeatureCollectionSerializer.java +++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/model/geojson/jackson/FeatureCollectionSerializer.java @@ -34,7 +34,6 @@ public class FeatureCollectionSerializer extends JsonSerializer<FeatureCollectio jsonGenerator.writeArrayFieldStart("geometries"); for (Feature feature : value.getFeatures()) { - jsonGenerator.writeStartObject(); if (feature.getGeometry() instanceof GeometryCollection) { GeometryCollection geometryCollection = (GeometryCollection) feature.getGeometry(); for (GeoJsonObject shape : geometryCollection.getGeometries()) { @@ -43,7 +42,6 @@ public class FeatureCollectionSerializer extends JsonSerializer<FeatureCollectio } else { serializeGeoShape(feature.getGeometry(), jsonGenerator); } - jsonGenerator.writeEndObject(); } jsonGenerator.writeEndArray(); @@ -59,23 +57,35 @@ public class FeatureCollectionSerializer extends JsonSerializer<FeatureCollectio private void serializeGeoShape(GeoJsonObject geoJsonObject, JsonGenerator jsonGenerator) throws IOException { if (geoJsonObject instanceof Point) { + jsonGenerator.writeStartObject(); jsonGenerator.writeStringField("type", "point"); jsonGenerator.writeObjectField("coordinates", ((Point) geoJsonObject).getCoordinates()); + jsonGenerator.writeEndObject(); } else if (geoJsonObject instanceof LineString) { + jsonGenerator.writeStartObject(); jsonGenerator.writeStringField("type", "linestring"); jsonGenerator.writeObjectField("coordinates", ((LineString) geoJsonObject).getCoordinates()); + jsonGenerator.writeEndObject(); } else if (geoJsonObject instanceof Polygon) { + jsonGenerator.writeStartObject(); jsonGenerator.writeStringField("type", "polygon"); jsonGenerator.writeObjectField("coordinates", ((Polygon) geoJsonObject).getCoordinates()); + jsonGenerator.writeEndObject(); } else if (geoJsonObject instanceof MultiPoint) { + jsonGenerator.writeStartObject(); jsonGenerator.writeStringField("type", "multipoint"); jsonGenerator.writeObjectField("coordinates", ((MultiPoint) geoJsonObject).getCoordinates()); + jsonGenerator.writeEndObject(); } else if (geoJsonObject instanceof MultiLineString) { + jsonGenerator.writeStartObject(); jsonGenerator.writeStringField("type", "multilinestring"); jsonGenerator.writeObjectField("coordinates", ((MultiLineString) geoJsonObject).getCoordinates()); + jsonGenerator.writeEndObject(); } else if (geoJsonObject instanceof MultiPolygon) { + jsonGenerator.writeStartObject(); jsonGenerator.writeStringField("type", "multipolygon"); jsonGenerator.writeObjectField("coordinates", ((MultiPolygon) geoJsonObject).getCoordinates()); + jsonGenerator.writeEndObject(); } } }