// Copyright 2025 MOIA GmbH

syntax = "proto3";

package moia.type.v1;

option go_package = "./type";
option java_multiple_files = false;
option java_outer_classname = "LatLonWithHeadingV1";
option java_package = "io.moia.type.v1";

// A latitude, longitude, heading triplet representing an oriented geographic location.
// Unless specified otherwise, latitude and longitude must adhere to the WGS84 standard.
message LatLonWithHeading {
  // The latitude in degrees.
  // [-90.0, +90.0].
  // Required.
  double latitude = 1;

  // The longitude in degrees.
  // [-180.0, +180.0].
  // Required.
  double longitude = 2;

  // The heading of the location in degrees.
  // [0.0, 360.0).
  // The interval is half-closed; 360.0° is invalid, use 0.0° instead.
  // 0.0° = facing north, 90.0° = facing east, 180.0° = facing south, 270.0° = facing west.
  // Required.
  double heading = 3;
}
