{
  "$id": "https://schemas.ruter.no/adt/ota/api/v3.0/sensors/location/location.json",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Location",
  "type": "object",
  "description": "Location sensor data",
  "required": [
    "traceId",
    "eventTimestamp",
    "latitudeDegree",
    "longitudeDegree",
    "altitude",
    "messageNumber",
    "speedOverGround",
    "trackDegreeTrue",
    "signalQuality",
    "numberOfSatellites",
    "hdop"
  ],
  "additionalProperties": true,
  "properties": {
    "traceId": {
      "$id": "#/properties/traceId",
      "type": "string",
      "description": "A unique identifier - UUID"
    },
    "eventTimestamp": {
      "$id": "#/properties/eventTimestamp",
      "type": "string",
      "description": "As specified in the [ADT documentation.](https://adt.transhub.io). Reflects the UTC time provided by the GNSS equipment for position fix. This is the point in time the location applies to. Millisecond precision is preferred, if available"
    },
    "latitudeDegree": {
      "$id": "#/properties/latitudeDegree",
      "type": "number",
      "description": "Latitude coordinate in decimal degrees."
    },
    "longitudeDegree": {
      "$id": "#/properties/longitudeDegree",
      "type": "number",
      "description": "Longitude coordinate in decimal degrees."
    },
    "altitude": {
      "$id": "#/properties/altitude",
      "type": "number",
      "description": "Altitude value (meter) above mean sea level."
    },
    "messageNumber": {
      "$id": "#/properties/messageNumber",
      "$comment": "Added in version 2.1. Mandatory since 3.0",
      "type": "integer",
      "description": "Sequence number, increased by one for each new message. Used to validate consistency in the data stream."
    },
    "speedOverGround": {
      "$id": "#/properties/speedOverGround",
      "type": "number",
      "description": "GNSS based speed over ground (m/s)."
    },
    "trackDegreeTrue": {
      "$id": "#/properties/trackDegreeTrue",
      "type": "number",
      "description": "Direction of travel in relation to the geographical North Pole (0-360 degrees)."
    },
    "signalQuality": {
      "$id": "#/properties/signalQuality",
      "type": "integer",
      "minimum": 0,
      "maximum": 8,
      "description": "GPS quality indicator. 0 - Fix not available. 1 - GPS fix. 2 - Differential GPS fix. 3 = PPS fix. 4 = Real Time Kinematic. 5 = Float RTK. 6 = Estimated (dead reckoning). 7 = Manual input mode. 8 = Simulation mode"
    },
    "numberOfSatellites": {
      "$id": "#/properties/numberOfSatellites",
      "type": "integer",
      "description": "Number of satellites used."
    },
    "hdop": {
      "$id": "#/properties/hdop",
      "type": "number",
      "description": "Value of precision in horizontal dilution."
    }
  }
}
