Stay organized with collections Save and categorize content based on your preferences.
DirectionsService classgoogle.maps.DirectionsService
class
A service for computing directions between two or more places.
Access by calling const {DirectionsService} = await google.maps.importLibrary("routes")
.
See Libraries in the Maps JavaScript API.
DirectionsService
DirectionsService()
Parameters: None
Creates a new instance of a DirectionsService
that sends directions queries to Google servers.
google.maps.DirectionsRequest
interface
A directions query to be sent to the DirectionsService
.
destination
Type: string|LatLng|Place|LatLngLiteral
Location of destination. This can be specified as either a string to be geocoded, or a LatLng
, or a Place
. Required.
origin
Type: string|LatLng|Place|LatLngLiteral
Location of origin. This can be specified as either a string to be geocoded, or a LatLng
, or a Place
. Required.
travelMode
Type: TravelMode
Type of routing requested. Required.
avoidFerries optional
Type: boolean optional
If true
, instructs the Directions service to avoid ferries where possible. Optional.
avoidHighways optional
Type: boolean optional
If true
, instructs the Directions service to avoid highways where possible. Optional.
avoidTolls optional
Type: boolean optional
If true
, instructs the Directions service to avoid toll roads where possible. Optional.
drivingOptions optional
Type: DrivingOptions optional
Settings that apply only to requests where travelMode
is DRIVING
. This object will have no effect for other travel modes.
language optional
Type: string optional
A language identifier for the language in which results should be returned, when possible. See the
list of supported languages.
optimizeWaypoints optional
Type: boolean optional
If set to true
, the DirectionsService
will attempt to re-order the supplied intermediate waypoints to minimize overall cost of the route. If waypoints are optimized, inspect DirectionsRoute.waypoint_order
in the response to determine the new ordering.
provideRouteAlternatives optional
Type: boolean optional
Whether or not route alternatives should be provided. Optional.
region optional
Type: string optional
Region code used as a bias for geocoding requests. The region code accepts a
ccTLD ("top-level domain")two-character value. Most ccTLD codes are identical to ISO 3166-1 codes, with some notable exceptions. For example, the United Kingdom's ccTLD is "uk" (
.co.uk
) while its ISO 3166-1 code is "gb" (technically for the entity of "The United Kingdom of Great Britain and Northern Ireland").
transitOptions optional
Type: TransitOptions optional
Settings that apply only to requests where travelMode
is TRANSIT. This object will have no effect for other travel modes.
unitSystem optional
Type: UnitSystem optional
Default: The unit system used in the country of origin.
Preferred unit system to use when displaying distance.
waypoints optional
Type: Array<DirectionsWaypoint> optional
Array of intermediate waypoints. Directions are calculated from the origin to the destination by way of each waypoint in this array. See the
developer's guidefor the maximum number of waypoints allowed. Waypoints are not supported for transit directions. Optional.
DirectionsStatus constantsgoogle.maps.DirectionsStatus
constants
The status returned by the DirectionsService
on the completion of a call to route()
. Specify these by value, or by using the constant's name. For example, 'OK'
or google.maps.DirectionsStatus.OK
.
Access by calling const {DirectionsStatus} = await google.maps.importLibrary("routes")
.
See Libraries in the Maps JavaScript API.
INVALID_REQUEST
The DirectionsRequest
provided was invalid. MAX_WAYPOINTS_EXCEEDED
Too many DirectionsWaypoint
s were provided in the DirectionsRequest
. See the developer's guide for the maximum number of waypoints allowed. NOT_FOUND
At least one of the origin, destination, or waypoints could not be geocoded. OK
The response contains a valid DirectionsResult
. OVER_QUERY_LIMIT
The webpage has gone over the requests limit in too short a period of time. REQUEST_DENIED
The webpage is not allowed to use the directions service. UNKNOWN_ERROR
A directions request could not be processed due to a server error. The request may succeed if you try again. ZERO_RESULTS
No route could be found between the origin and destination. DirectionsResult interface
google.maps.DirectionsResult
interface
The directions response retrieved from the directions server. You can render these using a DirectionsRenderer
or parse this object and render it yourself. You must display the warnings and copyrights as noted in the Google Maps Platform Terms of Service. Note that though this result is "JSON-like," it is not strictly JSON, as it indirectly includes LatLng
objects.
request
Type: DirectionsRequest
The DirectionsRequest that yielded this result.
routes
Type: Array<DirectionsRoute>
An array of DirectionsRoute
s, each of which contains information about the legs and steps of which it is composed. There will only be one route unless the DirectionsRequest
was made with provideRouteAlternatives
set to true
.
available_travel_modes optional
Type: Array<TravelMode> optional
Contains an array of available travel modes. This field is returned when a request specifies a travel mode and gets no results. The array contains the available travel modes in the countries of the given set of waypoints. This field is not returned if one or more of the waypoints are 'via waypoints'.
geocoded_waypoints optional
Type: Array<DirectionsGeocodedWaypoint> optional
An array of DirectionsGeocodedWaypoint
s, each of which contains information about the geocoding of origin, destination and waypoints.
google.maps.DirectionsRenderer
class
Renders directions obtained from the DirectionsService
.
This class extends MVCObject
.
Access by calling const {DirectionsRenderer} = await google.maps.importLibrary("routes")
.
See Libraries in the Maps JavaScript API.
DirectionsRenderer
DirectionsRenderer([opts])
opts
: DirectionsRendererOptions optional
Creates the renderer with the given options. Directions can be rendered on a map (as visual overlays) or additionally on a <div>
panel (as textual instructions).
getDirections
getDirections()
Parameters: None
Return Value:DirectionsResult
Returns the renderer's current set of directions.
getMap
getMap()
Parameters: None
Return Value:Map
Returns the map on which the DirectionsResult
is rendered.
getPanel
getPanel()
Parameters: None
Return Value:HTMLElement|null
Returns the panel <div>
in which the DirectionsResult
is rendered.
getRouteIndex
getRouteIndex()
Parameters: None
Return Value: number
Returns the current (zero-based) route index in use by this DirectionsRenderer
object.
setDirections
setDirections(directions)
directions
: DirectionsResult
Return Value: None
Set the renderer to use the result from the DirectionsService
. Setting a valid set of directions in this manner will display the directions on the renderer's designated map and panel.
setMap
setMap(map)
map
: Map
Return Value: None
This method specifies the map on which directions will be rendered. Pass null
to remove the directions from the map.
setOptions
setOptions(options)
options
: DirectionsRendererOptions
Return Value: None
Change the options settings of this DirectionsRenderer
after initialization.
setPanel
setPanel(panel)
panel
: HTMLElement optional
Return Value: None
This method renders the directions in a <div>
. Pass null
to remove the content from the panel.
setRouteIndex
setRouteIndex(routeIndex)
routeIndex
: number
Return Value: None
Set the (zero-based) index of the route in the DirectionsResult
object to render. By default, the first route in the array will be rendered.
addListener
, bindTo
, get
, notify
, set
, setValues
, unbind
, unbindAll
Events directions_changed
function()
Arguments: None
This event is fired when the rendered directions change, either when a new DirectionsResult
is set or when the user finishes dragging a change to the directions path.
google.maps.DirectionsRendererOptions
interface
This object defines the properties that can be set on a DirectionsRenderer
object.
directions optional
Type: DirectionsResult optional
The directions to display on the map and/or in a <div>
panel, retrieved as a DirectionsResult
object from DirectionsService
.
draggable optional
Type: boolean optional
If true
, allows the user to drag and modify the paths of routes rendered by this DirectionsRenderer
.
hideRouteList optional
Type: boolean optional
Default: false
This property indicates whether the renderer should provide a user-selectable list of routes shown in the directions panel.
infoWindow optional
Type: InfoWindow optional
The InfoWindow
in which to render text information when a marker is clicked. Existing info window content will be overwritten and its position moved. If no info window is specified, the DirectionsRenderer
will create and use its own info window. This property will be ignored if suppressInfoWindows
is set to true
.
map optional
Type: Map optional
Map on which to display the directions.
markerOptions optional
Type: MarkerOptions optional
Options for the markers. All markers rendered by the DirectionsRenderer
will use these options.
panel optional
Type: HTMLElement optional
The <div>
in which to display the directions steps.
polylineOptions optional
Type: PolylineOptions optional
Options for the polylines. All polylines rendered by the DirectionsRenderer
will use these options.
preserveViewport optional
Type: boolean optional
Default: false
If this option is set to true
or the map's center and zoom were never set, the input map is centered and zoomed to the bounding box of this set of directions.
routeIndex optional
Type: number optional
The index of the route within the DirectionsResult
object. The default value is 0.
suppressBicyclingLayer optional
Type: boolean optional
Suppress the rendering of the BicyclingLayer
when bicycling directions are requested.
suppressInfoWindows optional
Type: boolean optional
Suppress the rendering of info windows.
suppressMarkers optional
Type: boolean optional
Suppress the rendering of markers.
suppressPolylines optional
Type: boolean optional
Suppress the rendering of polylines.
DirectionsWaypoint interfacegoogle.maps.DirectionsWaypoint
interface
A DirectionsWaypoint
represents a location between origin and destination through which the trip should be routed.
location optional
Type: string|LatLng|LatLngLiteral|Place optional
Waypoint location. Can be an address string, a LatLng
, or a Place
. Optional.
stopover optional
Type: boolean optional
Default: true
If true
, indicates that this waypoint is a stop between the origin and destination. This has the effect of splitting the route into two legs. If false
, indicates that the route should be biased to go through this waypoint, but not split into two legs. This is useful if you want to create a route in response to the user dragging waypoints on a map.
google.maps.DirectionsGeocodedWaypoint
interface
A single geocoded waypoint.
Propertiespartial_match optional
Type: boolean optional
Whether the geocoder did not return an exact match for the original waypoint, though it was able to match part of the requested address.
place_id optional
Type: string optional
The place ID associated with the waypoint. Place IDs uniquely identify a place in the Google Places database and on Google Maps. Learn more about
Place IDsin the Places API developer guide.
types optional
Type: Array<string> optional
An array of strings denoting the type of the returned geocoded element. For a list of possible strings, refer to the
Address Component Typessection of the Developer's Guide.
DirectionsRoute interfacegoogle.maps.DirectionsRoute
interface
A single route containing a set of legs in a DirectionsResult
. Note that though this object is "JSON-like," it is not strictly JSON, as it directly and indirectly includes LatLng
objects.
bounds
Type: LatLngBounds
The bounds for this route.
copyrights
Type: string
Copyrights text to be displayed for this route.
legs
Type: Array<DirectionsLeg>
An array of DirectionsLeg
s, each of which contains information about the steps of which it is composed. There will be one leg for each stopover waypoint or destination specified. So a route with no stopover waypoints will contain one DirectionsLeg
and a route with one stopover waypoint will contain two.
overview_path
Type: Array<LatLng>
An array of LatLng
s representing the entire course of this route. The path is simplified in order to make it suitable in contexts where a small number of vertices is required (such as Static Maps API URLs).
overview_polyline
Type: string
An
encoded polyline representationof the route in overview_path. This polyline is an approximate (smoothed) path of the resulting directions.
summary
Type: string
Contains a short textual description for the route, suitable for naming and disambiguating the route from alternatives.
warnings
Type: Array<string>
Warnings to be displayed when showing these directions.
waypoint_order
Type: Array<number>
If optimizeWaypoints
was set to true
, this field will contain the re-ordered permutation of the input waypoints. For example, if the input was:
Origin: Los Angeles
Waypoints: Dallas, Bangor, Phoenix
Destination: New York
and the optimized output was ordered as follows:
Origin: Los Angeles
Waypoints: Phoenix, Dallas, Bangor
Destination: New York
then this field will be an Array
containing the values [2, 0, 1]. Note that the numbering of waypoints is zero-based.
If any of the input waypoints has stopover
set to false
, this field will be empty, since route optimization is not available for such queries.
fare optional
Type: TransitFare optional
The total fare for the whole transit trip. Only applicable to transit requests.
DirectionsLeg interfacegoogle.maps.DirectionsLeg
interface
A single leg consisting of a set of steps in a DirectionsResult
. Some fields in the leg may not be returned for all requests. Note that though this result is "JSON-like," it is not strictly JSON, as it directly and indirectly includes LatLng
objects.
end_address
Type: string
The address of the destination of this leg. This content is meant to be read as-is. Do not programmatically parse the formatted address.
end_location
Type: LatLng
The DirectionsService
calculates directions between locations by using the nearest transportation option (usually a road) at the start and end locations. end_location
indicates the actual geocoded destination, which may be different than the end_location
of the last step if, for example, the road is not near the destination of this leg.
start_address
Type: string
The address of the origin of this leg. This content is meant to be read as-is. Do not programmatically parse the formatted address.
start_location
Type: LatLng
The DirectionsService
calculates directions between locations by using the nearest transportation option (usually a road) at the start and end locations. start_location
indicates the actual geocoded origin, which may be different than the start_location
of the first step if, for example, the road is not near the origin of this leg.
steps
Type: Array<DirectionsStep>
An array of DirectionsStep
s, each of which contains information about the individual steps in this leg.
traffic_speed_entry
Deprecated: This array will always be empty.
Type:Array<*>
Information about traffic speed along the leg.
via_waypoints
Type: Array<LatLng>
An array of non-stopover waypoints along this leg, which were specified in the original request.
Deprecated in alternative routes. Version 3.27 will be the last version of the API that adds extra via_waypoints
in alternative routes.
When using the Directions Service to implement draggable directions, it is recommended to disable dragging of alternative routes. Only the main route should be draggable. Users can drag the main route until it matches an alternative route.
arrival_time optional
Type: Time optional
An estimated arrival time for this leg. Only applicable for TRANSIT requests.
departure_time optional
Type: Time optional
An estimated departure time for this leg. Only applicable for TRANSIT requests.
distance optional
Type: Distance optional
The total distance covered by this leg. This property may be undefined as the distance may be unknown.
duration optional
Type: Duration optional
The total duration of this leg. This property may be undefined
as the duration may be unknown.
duration_in_traffic optional
Type: Duration optional
The total duration of this leg, taking into account the traffic conditions indicated by the trafficModel
property. This property may be undefined
as the duration may be unknown.
google.maps.DirectionsStep
interface
A single DirectionsStep
in a DirectionsResult
. Some fields may be undefined
. Note that though this object is "JSON-like," it is not strictly JSON, as it directly includes LatLng
objects.
google.maps.Place
interface
Contains information needed to locate, identify, or describe a place for a DirectionsRequest
or DistanceMatrixRequest
. In this context, "place" means a business, point of interest, or geographic location. For fetching information about a place, see PlacesService
.
location optional
Type: LatLng|LatLngLiteral optional
The LatLng
of the entity described by this place.
placeId optional
Type: string optional
The place ID of the place (such as a business or point of interest). The place ID is a unique identifier of a place in the Google Maps database. Note that the
placeId
is the most accurate way of identifying a place. If possible, you should specify the
placeId
rather than a
query
. A place ID can be retrieved from any request to the Places API, such as a
TextSearch. Place IDs can also be retrieved from requests to the Geocoding API. For more information, see the
overview of place IDs.
query optional
Type: string optional
A search query describing the place (such as a business or point of interest). An example query is "Quay, Upper Level, Overseas Passenger Terminal 5 Hickson Road, The Rocks NSW". If possible, you should specify the placeId
rather than a query
. The API does not guarantee the accuracy of resolving the query string to a place. If both the placeId
and query
are provided, an error occurs.
google.maps.TravelMode
constants
The valid travel modes that can be specified in a DirectionsRequest
as well as the travel modes returned in a DirectionsStep
. Specify these by value, or by using the constant's name. For example, 'BICYCLING'
or google.maps.TravelMode.BICYCLING
.
Access by calling const {TravelMode} = await google.maps.importLibrary("routes")
.
See Libraries in the Maps JavaScript API.
BICYCLING
Specifies a bicycling directions request. DRIVING
Specifies a driving directions request. TRANSIT
Specifies a transit directions request. WALKING
Specifies a walking directions request. DrivingOptions interface
google.maps.DrivingOptions
interface
Configures the DirectionsRequest
when the travel mode is set to DRIVING
.
departureTime
Type: Date
The desired departure time for the route, specified as a Date
object. The Date
object measures time in milliseconds since 1 January 1970. This must be specified for a DrivingOptions
to be valid. The departure time must be set to the current time or some time in the future. It cannot be in the past.
trafficModel optional
Type: TrafficModel optional
The preferred assumption to use when predicting duration in traffic. The default is BEST_GUESS
.
google.maps.TrafficModel
constants
The assumptions to use when predicting duration in traffic. Specified as part of a DirectionsRequest
or DistanceMatrixRequest
. Specify these by value, or by using the constant's name. For example, 'bestguess'
or google.maps.TrafficModel.BEST_GUESS
.
Access by calling const {TrafficModel} = await google.maps.importLibrary("routes")
.
See Libraries in the Maps JavaScript API.
BEST_GUESS
Use historical traffic data to best estimate the time spent in traffic. OPTIMISTIC
Use historical traffic data to make an optimistic estimate of what the duration in traffic will be. PESSIMISTIC
Use historical traffic data to make a pessimistic estimate of what the duration in traffic will be. TransitOptions interface
google.maps.TransitOptions
interface
The TransitOptions object to be included in a DirectionsRequest
when the travel mode is set to TRANSIT.
arrivalTime optional
Type: Date optional
The desired arrival time for the route, specified as a Date object. The Date object measures time in milliseconds since 1 January 1970. If arrival time is specified, departure time is ignored.
departureTime optional
Type: Date optional
The desired departure time for the route, specified as a Date object. The Date object measures time in milliseconds since 1 January 1970. If neither departure time nor arrival time is specified, the time is assumed to be "now".
modes optional
Type: Array<TransitMode> optional
One or more preferred modes of transit, such as bus or train. If no preference is given, the API returns the default best route.
routingPreference optional
Type: TransitRoutePreference optional
A preference that can bias the choice of transit route, such as less walking. If no preference is given, the API returns the default best route.
TransitMode constantsgoogle.maps.TransitMode
constants
The valid transit mode e.g. bus that can be specified in a TransitOptions
. Specify these by value, or by using the constant's name. For example, 'BUS'
or google.maps.TransitMode.BUS
.
Access by calling const {TransitMode} = await google.maps.importLibrary("routes")
.
See Libraries in the Maps JavaScript API.
BUS
Specifies bus as a preferred mode of transit. RAIL
Specifies rail as a preferred mode of transit. SUBWAY
Specifies subway as a preferred mode of transit. TRAIN
Specifies train as a preferred mode of transit. TRAM
Specifies tram as a preferred mode of transit. TransitRoutePreference constants
google.maps.TransitRoutePreference
constants
The valid transit route type that can be specified in a TransitOptions
. Specify these by value, or by using the constant's name. For example, 'LESS_WALKING'
or google.maps.TransitRoutePreference.LESS_WALKING
.
Access by calling const {TransitRoutePreference} = await google.maps.importLibrary("routes")
.
See Libraries in the Maps JavaScript API.
FEWER_TRANSFERS
Specifies that the calculated route should prefer a limited number of transfers. LESS_WALKING
Specifies that the calculated route should prefer limited amounts of walking. TransitFare interface
google.maps.TransitFare
interface
A fare of a DirectionsRoute
consisting of value and currency.
currency
Type: string
An
ISO 4217 currency codeindicating the currency in which the fare is expressed.
text
Type: string
The value of the fare, expressed in the given currency
, as a string.
value
Type: number
The numerical value of the fare, expressed in the given currency
.
google.maps.TransitDetails
interface
Details about the departure, arrival, and mode of transit used in this step.
Propertiesarrival_stop
Type: TransitStop
The arrival stop of this transit step.
arrival_time
Type: Time
The arrival time of this step, specified as a Time object.
departure_stop
Type: TransitStop
The departure stop of this transit step.
departure_time
Type: Time
The departure time of this step, specified as a Time object.
headsign
Type: string
The direction in which to travel on this line, as it is marked on the vehicle or at the departure stop.
headway
Type: number
The expected number of seconds between equivalent vehicles at this stop.
line
Type: TransitLine
Details about the transit line used in this step.
num_stops
Type: number
The number of stops on this step. Includes the arrival stop, but not the departure stop.
trip_short_name
Type: string
The text that appears in schedules and sign boards to identify a transit trip to passengers, for example, to identify train numbers for commuter rail trips. The text uniquely identifies a trip within a service day.
TransitStop interfacegoogle.maps.TransitStop
interface
Details about a transit stop or station.
Propertieslocation
Type: LatLng
The location of this stop.
name
Type: string
The name of this transit stop.
TransitLine interfacegoogle.maps.TransitLine
interface
Information about the transit line that operates this transit step.
Propertiesagencies
Type: Array<TransitAgency>
The transit agency that operates this transit line.
color
Type: string
The color commonly used in signage for this transit line, represented as a hex string.
icon
Type: string
The URL for an icon associated with this line.
name
Type: string
The full name of this transit line, e.g. "8 Avenue Local".
short_name
Type: string
The short name of this transit line, e.g. "E".
text_color
Type: string
The text color commonly used in signage for this transit line, represented as a hex string.
url
Type: string
The agency's URL which is specific to this transit line.
vehicle
Type: TransitVehicle
The type of vehicle used, e.g. train or bus.
TransitAgency interfacegoogle.maps.TransitAgency
interface
Information about an agency that operates a transit line.
Propertiesname
Type: string
The name of this transit agency.
phone
Type: string
The transit agency's phone number.
url
Type: string
The transit agency's URL.
TransitVehicle interfacegoogle.maps.TransitVehicle
interface
Information about the vehicle that operates on a transit line.
Propertiesicon
Type: string
A URL for an icon that corresponds to the type of vehicle used on this line.
local_icon
Type: string
A URL for an icon that corresponds to the type of vehicle used in this region instead of the more general icon.
name
Type: string
A name for this type of TransitVehicle, e.g. "Train" or "Bus".
type
Type: VehicleType
The type of vehicle used, e.g. train, bus, or ferry.
UnitSystem constantsgoogle.maps.UnitSystem
constants
The valid unit systems that can be specified in a DirectionsRequest
.
Access by calling const {UnitSystem} = await google.maps.importLibrary("core")
.
See Libraries in the Maps JavaScript API.
IMPERIAL
Specifies that distances in the DirectionsResult
should be expressed in imperial units. METRIC
Specifies that distances in the DirectionsResult
should be expressed in metric units. Distance interface
google.maps.Distance
interface
A representation of distance as a numeric value and a display string.
Propertiestext
Type: string
A string representation of the distance value, using the UnitSystem
specified in the request.
value
Type: number
The distance in meters.
Duration interfacegoogle.maps.Duration
interface
A representation of duration as a numeric value and a display string.
Propertiestext
Type: string
A string representation of the duration value.
value
Type: number
The duration in seconds.
Time interfacegoogle.maps.Time
interface
A representation of time as a Date object, a localized string, and a time zone.
Propertiestext
Type: string
A string representing the time's value. The time is displayed in the time zone of the transit stop.
time_zone
Type: string
The time zone in which this stop lies. The value is the name of the time zone as defined in the IANA Time Zone Database, e.g. "America/New_York".
value
Type: Date
The time of this departure or arrival, specified as a JavaScript Date object.
DirectionsTravelMode constantsgoogle.maps.DirectionsTravelMode
constants
Deprecated: Deprecated as of 2011. Use {\@link mapsapi.directions.service.directionsConstants.TravelMode} instead.
DirectionsUnitSystem constantsgoogle.maps.DirectionsUnitSystem
constants
Deprecated: Deprecated as of 2011. Use {\@link mapsapi.directions.service.directionsConstants.UnitSystem} instead.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-07-09 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-07-09 UTC."],[],[]]
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4