Skip to main content

GeoFenceModel

class GeoFenceModel

Description: Geofence data model

public class GeoFenceModel {

private Long id;
/**
* User ID
*/
private String userId;
/**
* Name
*/
private String name;
/**
* Color
*/
private String areaColor = GeoFenceAreaType.GEO_FENCE.getColor();

/**
* Area type. 0: Flyable zone; 1: No-fly zone; 2: Forced flyable zone.
*/
private GeoFenceAreaType areaType = GeoFenceAreaType.GEO_FENCE;
/**
* Shape type. 0: Circle; 1: Polygon;
*/
private GeoFenceAreaShape areaShape = GeoFenceAreaShape.CIRCLE;
/**
* Map level (reserved for future use)
*/
private int areaLevel;
/**
* Number of polygon vertices (polygon property)
*/
private int polygonNum;
/**
* Center point latitude (circle property)
*/
private double latitude;
/**
* Center point longitude (circle property)
*/
private double longitude;
/**
* Radius (circle property)
*/
private float radius;
/**
* Height
*/
private float height;

/**
* Minimum height
*/
private int minHeight;

/**
* Maximum height
*/
private int maxHeight;
/**
* Minimum height reference type
*/
private HeightReferenceType minHeightReferenceType;
/**
* Maximum height reference type
*/
private HeightReferenceType maxHeightReferenceType;

/**
* Height validity (if invalid, height is infinite)
*/
private boolean isHeightValid;
/**
* List of polygon vertices (polygon property)
*/
private ArrayList<Coordinate3D> latLngs = new ArrayList<>();
/**
* Effective start time (UTC time)
*/
private long effectiveTimeStart;
/**
* Effective end time (UTC time)
*/
private long effectiveTimeEnd;
/**
* Effective start time (string format)
*/
private String startDateTime; //2018-12-31T15:59:59.00Z
/**
* Effective end time (string format)
*/
private String endDateTime; //2018-12-31T15:59:59.00Z

/**
* Data creation time (UTC time)
*/
private long createTime;
/**
* Last update time (UTC time)
*/
private long latestUpdateTime;
/**
* Permanent status
*/
private String permanent;
/**
* Unique identifier
*/
private String uuid;

/**
* Data status, used to inform server of data state.
* 0: Local data (never uploaded to server)
* 1: Not updated, no action needed
* 2: Data has been updated
* 3: Data has been deleted
*/
private int updateStatus;
}

Coordinate3D

Description: Polygon vertex information

public class Coordinate3D {
/**
* ID
*/
private Long id;
/**
* Latitude
*/
private double latitude;
/**
* Longitude
*/
private double longitude;
/**
* Altitude
*/
private float altitude;
}

GeoFenceAreaType

Description: Geofence area types

public enum GeoFenceAreaType {
/**
* Unknown
*/
UNKNOWN(-1, "#ff0000"),
/**
* Geofence
*/
GEO_FENCE(0, "#3CE171"),
/**
* No-fly zone, temporary no-fly zone
*/
NO_FLY(1, "#F20000"),
/**
* Forced flyable zone (authorized area)
*/
FORCE_FLY(2, "#3CE171");

final int value; //Enumeration value
final String color; //Color
}

GeoFenceAreaShape

Description: Geofence area shapes

public enum GeoFenceAreaShape {
/**
* Unknown
*/
UNKNOWN,
/**
* Circle
*/
CIRCLE,
/**
* Polygon
*/
POLYGON,
}

HeightReferenceType

Description: Height reference types

public enum HeightReferenceType {
/**
* Above Mean Sea Level
*/
AMSL,
/**
* Above Ground Level
*/
AGL;
}