1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.bremersee.geojson.converter.serialization;
18
19 import com.fasterxml.jackson.core.JsonGenerator;
20 import com.fasterxml.jackson.databind.SerializerProvider;
21 import com.fasterxml.jackson.databind.ser.std.StdSerializer;
22 import java.io.IOException;
23 import java.io.Serial;
24 import org.locationtech.jts.geom.Geometry;
25
26
27
28
29
30
31 public class JacksonGeometrySerializer extends StdSerializer<Geometry> {
32
33 @Serial
34 private static final long serialVersionUID = 3L;
35
36
37
38
39 private final GeometryToJsonConverter converter;
40
41
42
43
44 public JacksonGeometrySerializer() {
45 this(false, false);
46 }
47
48
49
50
51
52
53
54 public JacksonGeometrySerializer(boolean withBoundingBox, boolean useBigDecimal) {
55 super(Geometry.class, false);
56 this.converter = new GeometryToJsonConverter(withBoundingBox, useBigDecimal);
57 }
58
59 @Override
60 public void serialize(
61 Geometry value,
62 JsonGenerator jgen,
63 SerializerProvider provider)
64 throws IOException {
65
66 if (value == null) {
67 jgen.writeNull();
68 } else {
69 jgen.writeObject(converter.convert(value));
70 }
71 }
72
73 }