diff options
Diffstat (limited to 'src/org/traccar/model/Geofence.java')
-rw-r--r-- | src/org/traccar/model/Geofence.java | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/src/org/traccar/model/Geofence.java b/src/org/traccar/model/Geofence.java new file mode 100644 index 000000000..0723c21e0 --- /dev/null +++ b/src/org/traccar/model/Geofence.java @@ -0,0 +1,67 @@ +package org.traccar.model; + +import java.text.ParseException; + +import org.traccar.geofence.GeofenceCircle; +import org.traccar.geofence.GeofenceGeometry; +import org.traccar.geofence.GeofencePolygon; + +import com.fasterxml.jackson.annotation.JsonIgnore; + +public class Geofence extends Extensible { + + public static final String TYPE_GEOFENCE_CILCLE = "geofenceCircle"; + public static final String TYPE_GEOFENCE_POLYGON = "geofencePolygon"; + + private String name; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + private String description; + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + private String area; + + public String getArea() { + return area; + } + + public void setArea(String area) throws ParseException { + + if (area.startsWith("CIRCLE")) { + geometry = new GeofenceCircle(area); + } else if (area.startsWith("POLYGON")) { + geometry = new GeofencePolygon(area); + } else { + throw new ParseException("Unknown geometry type", 0); + } + + this.area = area; + } + + private GeofenceGeometry geometry; + + @JsonIgnore + public GeofenceGeometry getGeometry() { + return geometry; + } + + public void setGeometry(GeofenceGeometry geometry) { + area = geometry.toWKT(); + this.geometry = geometry; + } + +} |