@Override public JsonElement serialize(final Change source, final Type typeOfSource, final JsonSerializationContext context) { final JsonObject result = new JsonObject(); result.addProperty("type", "FeatureCollection"); final Rectangle bounds = source.bounds(); result.add("bbox", bounds.asGeoJsonBbox()); final JsonArray features = new JsonArray(); source.changes().map(featureChangeTypeHierarchyAdapter::serialize) .forEach(features::add); result.add("features", features); final JsonObject properties = new JsonObject(); properties.addProperty("bboxWKT", source.bounds().toWkt()); result.add("properties", properties); return result; } }
public JsonElement serialize(final FeatureChange source) { final JsonObject result = new JsonObject(); result.addProperty("type", "Feature"); final Rectangle bounds = source.bounds(); result.add("bbox", bounds.asGeoJsonBbox()); final GeometryPrintable geometryPrintable = new AtlasEntityGeometryPrintableConverter() .convert(source.getReference()); addGeometryGeojson(result, geometryPrintable); final JsonObject properties = new JsonObject(); properties.addProperty("featureChangeType", source.getChangeType().toString()); new AtlasEntityPropertiesConverter().convert(source.getReference()).entrySet() .forEach(entry -> properties.add(entry.getKey(), entry.getValue())); addGeometryWkt(properties, geometryPrintable); properties.addProperty("bboxWKT", source.bounds().toWkt()); result.add("properties", properties); return result; }
@Test public void testAsGeoJsonBbox() { final Rectangle rectangle = Rectangle.TEST_RECTANGLE; final JsonArray array = rectangle.asGeoJsonBbox(); Assert.assertEquals("[-122.031905,37.328167,-122.029051,37.330394]", array.toString()); }