diff options
author | Abyss777 <abyss@fox5.ru> | 2016-06-10 16:02:06 +0500 |
---|---|---|
committer | Abyss777 <abyss@fox5.ru> | 2016-06-10 16:02:06 +0500 |
commit | 41fe4ca770875842f4d17531506c4bc74dc90501 (patch) | |
tree | d8cdfbf19873d8dd4ae100887b0cec5134f5eb74 /src/org/traccar/model/Geofence.java | |
parent | e966778c43ee4a2fa12705cded8648b96ef78f61 (diff) | |
download | trackermap-server-41fe4ca770875842f4d17531506c4bc74dc90501.tar.gz trackermap-server-41fe4ca770875842f4d17531506c4bc74dc90501.tar.bz2 trackermap-server-41fe4ca770875842f4d17531506c4bc74dc90501.zip |
Geofences
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; + } + +} |