location.proto

syntax = "proto3";

package pub.odf.location.v1;


message Bearing {
  float axis_x = 1;
  float axis_y = 2;
  float axis_z = 3;
}

message Location {
  double latitude = 1;
  double longitude = 2;
  double altitude = 3;

  float accuracy_meters = 5;
  uint32 timestamp = 6;
}

message Trajectory {
  // Relative angle at which the trajectory is headed
  // From 0 to 360
  float direction = 1;

  // Speed in meters/second
  float velocity = 2;
}

message Vitals {
  float battery = 1;
}

message LocationStatus {
  // When this location was recorded/reported.
  uint32 timestamp = 1;

  // ID of the user submitting the update
  bytes user_id = 2;

  // ID of the group to update
  bytes group_id = 3;

  Location location = 4;

  // Additional optional details about the direction of movement
  Trajectory trajectory = 5;
  Bearing bearing = 6;
  Vitals vitals = 7;
}