1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.bremersee.geojson.model;
18
19 import com.fasterxml.jackson.annotation.JsonCreator;
20 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
21 import com.fasterxml.jackson.annotation.JsonProperty;
22 import io.swagger.v3.oas.annotations.media.Schema;
23 import java.io.Serial;
24 import java.io.Serializable;
25 import java.math.BigDecimal;
26 import lombok.EqualsAndHashCode;
27 import lombok.ToString;
28
29
30
31
32
33
34 @Schema(description = "WGS84 position with lat and lon.")
35 @JsonIgnoreProperties(ignoreUnknown = true)
36 @EqualsAndHashCode(callSuper = false)
37 @ToString
38 public class LatLon implements LatLonAware, Serializable {
39
40 @Serial
41 private static final long serialVersionUID = 1L;
42
43
44
45
46 @Schema(description = "The latitude.")
47 private BigDecimal lat;
48
49
50
51
52 @Schema(description = "The longitude.")
53 private BigDecimal lon;
54
55
56
57
58
59
60
61 @JsonCreator
62 public LatLon(
63 @JsonProperty("lat") BigDecimal lat,
64 @JsonProperty("lon") BigDecimal lon) {
65 this.lat = lat;
66 this.lon = lon;
67 }
68
69
70
71
72
73
74 public LatLon(LatLonAware latLonAware) {
75 if (latLonAware != null) {
76 this.lat = latLonAware.getLatitude();
77 this.lon = latLonAware.getLongitude();
78 }
79 }
80
81 @JsonProperty("lat")
82 @Override
83 public BigDecimal getLatitude() {
84 return lat;
85 }
86
87 @JsonProperty("lon")
88 @Override
89 public BigDecimal getLongitude() {
90 return lon;
91 }
92
93 }