{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "ProbeListItem",
    "type": "object",
    "additionalProperties": false,
    "description": "Probe List Item for GPS tracking events",
    "properties": {
        "lat": {
            "type": "number",
            "description": "Raw Latitude"
        },
        "lon": {
            "type": "number",
            "description": "Raw Longitude"
        },
        "altitude": {
            "type": "number",
            "description": "measured in metres"
        },
        "horizontal_accuracy": {
            "type": "number",
            "description": "The radius of uncertainty for the location, measured in meters"
        },
        "vertical_accuracy": {
            "type": "number",
            "description": "The accuracy of the altitude value in meters"
        },
        "timestamp": {
            "type": "integer",
            "description": "The time at which location was determined in milliseconds"
        },
        "speed": {
            "type": "number",
            "description": "The instantaneous speed of the device in meters per second"
        },
        "heading": {
            "$ref": "/resources/schema/analytics/client/v4/type/HeadingDirectionType.json",
            "description": "The direction in which the device is traveling. Can be one of the - N NE E SE S SW NW W"
        },
        "heading_angle": {
            "type": "number",
            "description": "The direction in which the device is traveling with respect to north, degree value (0-360)"
        },
        "map_matched_lat": {
            "type": "number",
            "description": "Latitude after running map matching on lat"
        },
        "map_matched_lon": {
            "type": "number",
            "description": "Longitude after running map matching on lat"
        },
        "map_matched_heading_angle": {
            "type": "number",
            "description": "Heading angle after running map matching on heading_angle"
        },
        "map_match_status": {
            "$ref": "/resources/schema/analytics/client/v4/type/MapMatchStatusValues.json",
            "description": "Status of map matching"
        },
        "number_of_satellites": {
            "type": "integer",
            "description": "The number of satellites used for GPS"
        },
        "gps_provider": {
            "type": "string",
            "enum": [
                "gps",
                "fused",
                "network",
                "passive",
                "others"
            ],
            "description": "Provider of gps"
        },
        "speed_accuracy": {
            "type": "number",
            "description": "The accuracy of speed in meters per second"
        },
        "heading_angle_accuracy": {
            "type": "number",
            "description": "The accuracy of heading angle in degree value"
        }
    },
    "required": [
        "lat",
        "lon",
        "timestamp"
    ]
}