/*
* Copyright 2014 Google Inc. All rights reserved.
*
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
* file except in compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
* ANY KIND, either express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
package com.google.maps.model;
/**
* Each element in the steps of a {@link DirectionsLeg} defines a single step of the calculated
* directions. A step is the most atomic unit of a direction's route, containing a single step
* describing a specific, single instruction on the journey. E.g. "Turn left at W. 4th St." The step
* not only describes the instruction but also contains distance and duration information relating
* to how this step relates to the following step. For example, a step denoted as "Merge onto I-80
* West" may contain a duration of "37 miles" and "40 minutes," indicating that the next step is 37
* miles/40 minutes from this step.
*
* <p>When using the Directions API to search for transit directions, the steps array will include
* additional <a href="https://developers.google.com/maps/documentation/directions/intro#TransitDetails">
* Transit Details</a> in the form of a {@code transitDetails} array. If the directions include
* multiple modes of transportation, detailed directions will be provided for walking or driving
* steps in a {@code steps} array. For example, a walking step will include directions from the
* start and end locations: "Walk to Innes Ave & Fitch St". That step will include detailed
* walking directions for that route in the {@code steps} array, such as: "Head north-west", "Turn
* left onto Arelious Walker", and "Turn left onto Innes Ave".
*/
public class DirectionsStep {
/**
* {@code htmlInstructions} contains formatted instructions for this step, presented as an HTML
* text string.
*/
public String htmlInstructions;
/**
* {@code distance} contains the distance covered by this step until the next step.
*/
public Distance distance;
/**
* {@code maneuver} contains the maneuver required to move ahead. eg., turn-left.
* Please note, this field is undocumented, and thus should not be relied upon.
*/
@Deprecated
public String maneuver;
/**
* {@code duration} contains the typical time required to perform the step, until the next step.
*/
public Duration duration;
/**
* {@code startLocation} contains the location of the starting point of this step.
*/
public LatLng startLocation;
/**
* {@code endLocation} contains the location of the last point of this step.
*/
public LatLng endLocation;
/**
* {@code steps} contains detailed directions for walking or driving steps in transit directions.
* Substeps are only available when travelMode is set to "transit".
*/
public DirectionsStep[] steps;
/**
* {@code polyline} is the path of this step.
*/
public EncodedPolyline polyline;
/**
* {@code travelMode} is the travel mode of this step. See <a href="https://developers.google.com/maps/documentation/directions/intro#TravelModes">Travel
* Modes</a> for more detail.
*/
public TravelMode travelMode;
/**
* {@code transitDetails} contains transit specific information. This field is only returned with
* travel_mode is set to "transit". See <a href="https://developers.google.com/maps/documentation/directions/intro#TransitDetails">
* Transit Details</a> for more detail.
*/
public TransitDetails transitDetails;
}