java.lang.Object
software.amazon.awssdk.services.location.model.Leg
All Implemented Interfaces:
Serializable, SdkPojo, ToCopyableBuilder<Leg.Builder,Leg>

@Generated("software.amazon.awssdk:codegen") public final class Leg extends Object implements SdkPojo, Serializable, ToCopyableBuilder<Leg.Builder,Leg>

Contains the calculated route's details for each path between a pair of positions. The number of legs returned corresponds to one fewer than the total number of positions in the request.

For example, a route with a departure position and destination position returns one leg with the positions snapped to a nearby road:

  • The StartPosition is the departure position.

  • The EndPosition is the destination position.

A route with a waypoint between the departure and destination position returns two legs with the positions snapped to a nearby road:

  • Leg 1: The StartPosition is the departure position . The EndPosition is the waypoint positon.

  • Leg 2: The StartPosition is the waypoint position. The EndPosition is the destination position.

See Also:
  • Method Details

    • distance

      public final Double distance()

      The distance between the leg's StartPosition and EndPosition along a calculated route.

      • The default measurement is Kilometers unless the request specifies a DistanceUnit of Miles.

      Returns:
      The distance between the leg's StartPosition and EndPosition along a calculated route.

      • The default measurement is Kilometers unless the request specifies a DistanceUnit of Miles.

    • durationSeconds

      public final Double durationSeconds()

      The estimated travel time between the leg's StartPosition and EndPosition. The travel mode and departure time that you specify in the request determines the calculated time.

      Returns:
      The estimated travel time between the leg's StartPosition and EndPosition. The travel mode and departure time that you specify in the request determines the calculated time.
    • hasEndPosition

      public final boolean hasEndPosition()
      For responses, this returns true if the service returned a value for the EndPosition property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
    • endPosition

      public final List<Double> endPosition()

      The terminating position of the leg. Follows the format [longitude,latitude].

      If the EndPosition isn't located on a road, it's snapped to a nearby road.

      Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

      This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasEndPosition() method.

      Returns:
      The terminating position of the leg. Follows the format [longitude,latitude].

      If the EndPosition isn't located on a road, it's snapped to a nearby road.

    • geometry

      public final LegGeometry geometry()

      Contains the calculated route's path as a linestring geometry.

      Returns:
      Contains the calculated route's path as a linestring geometry.
    • hasStartPosition

      public final boolean hasStartPosition()
      For responses, this returns true if the service returned a value for the StartPosition property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
    • startPosition

      public final List<Double> startPosition()

      The starting position of the leg. Follows the format [longitude,latitude].

      If the StartPosition isn't located on a road, it's snapped to a nearby road.

      Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

      This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasStartPosition() method.

      Returns:
      The starting position of the leg. Follows the format [longitude,latitude].

      If the StartPosition isn't located on a road, it's snapped to a nearby road.

    • hasSteps

      public final boolean hasSteps()
      For responses, this returns true if the service returned a value for the Steps property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
    • steps

      public final List<Step> steps()

      Contains a list of steps, which represent subsections of a leg. Each step provides instructions for how to move to the next step in the leg such as the step's start position, end position, travel distance, travel duration, and geometry offset.

      Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

      This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasSteps() method.

      Returns:
      Contains a list of steps, which represent subsections of a leg. Each step provides instructions for how to move to the next step in the leg such as the step's start position, end position, travel distance, travel duration, and geometry offset.
    • toBuilder

      public Leg.Builder toBuilder()
      Description copied from interface: ToCopyableBuilder
      Take this object and create a builder that contains all of the current property values of this object.
      Specified by:
      toBuilder in interface ToCopyableBuilder<Leg.Builder,Leg>
      Returns:
      a builder for type T
    • builder

      public static Leg.Builder builder()
    • serializableBuilderClass

      public static Class<? extends Leg.Builder> serializableBuilderClass()
    • hashCode

      public final int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public final boolean equals(Object obj)
      Overrides:
      equals in class Object
    • equalsBySdkFields

      public final boolean equalsBySdkFields(Object obj)
      Description copied from interface: SdkPojo
      Indicates whether some other object is "equal to" this one by SDK fields. An SDK field is a modeled, non-inherited field in an SdkPojo class, and is generated based on a service model.

      If an SdkPojo class does not have any inherited fields, equalsBySdkFields and equals are essentially the same.

      Specified by:
      equalsBySdkFields in interface SdkPojo
      Parameters:
      obj - the object to be compared with
      Returns:
      true if the other object equals to this object by sdk fields, false otherwise.
    • toString

      public final String toString()
      Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be redacted from this string using a placeholder value.
      Overrides:
      toString in class Object
    • getValueForField

      public final <T> Optional<T> getValueForField(String fieldName, Class<T> clazz)
    • sdkFields

      public final List<SdkField<?>> sdkFields()
      Specified by:
      sdkFields in interface SdkPojo
      Returns:
      List of SdkField in this POJO. May be empty list but should never be null.