Когда API маршрутов вычисляет маршрут, он принимает предоставленные вами путевые точки и параметры конфигурации в качестве входных данных. Затем API возвращает ответ, содержащий маршрут по умолчанию и один или несколько альтернативных маршрутов.
Ваш ответ может включать различные типы маршрутов и другие данные в зависимости от запрошенных вами полей:
Чтобы включить это в ответ | См. эту документацию |
---|---|
Самый экономичный маршрут в зависимости от типа двигателя транспортного средства. | Настройте экологически чистые маршруты |
До трех альтернативных маршрутов | Запросить альтернативные маршруты |
Полилиния для всего маршрута, для каждого участка маршрута и для каждого шага участка. | Запросить полилинии маршрута |
Ориентировочная стоимость проезда с учетом любых скидок на оплату проезда или пропусков, доступных водителю или транспортному средству. | Рассчитать стоимость проезда |
Локализованные ответы по языковым кодам и единицам измерения (британская или метрическая). | Запросить локализованные значения |
Чтобы отформатировать инструкции по навигации в виде текстовой строки HTML, добавьте HTML_FORMATTED_NAVIGATION_INSTRUCTIONS в extraComputations . | Дополнительные вычисления |
Полный список параметров ввода см. в разделе Доступные параметры маршрута и в теле запроса .
Используя ответ, вы можете предоставить своим клиентам информацию, необходимую для выбора соответствующего их требованиям маршрута.
О масках полей
Когда вы вызываете метод для вычисления маршрута, вы должны указать маску поля, которая определяет, какие поля вы хотите вернуть в ответе. Не существует списка возвращаемых полей по умолчанию. Если вы опустите этот список, методы вернут ошибку.
В примерах в этом документе показан весь объект ответа без учета масок полей. В производственной среде ваш ответ будет включать только те поля, которые вы явно указали в маске поля.
Дополнительные сведения см. в разделе Выбор информации для возврата .
Об отображении авторских прав
При отображении результатов пользователям необходимо включить следующее заявление об авторских правах:
Powered by Google, © YEAR Google
Например:
Powered by Google, ©2023 Google
О маршрутах, этапах и шагах
Прежде чем просматривать ответ, возвращаемый API маршрутов, вы должны иметь представление о компонентах, составляющих маршрут:
Ваш ответ может содержать информацию о каждом из этих компонентов маршрута:
Маршрут : вся поездка от исходной путевой точки через все промежуточные путевые точки до конечной путевой точки. Маршрут состоит из одного или нескольких этапов .
Этап : Путь от одной путевой точки маршрута до следующей путевой точки маршрута. Каждый этап состоит из одного или нескольких дискретных шагов .
Маршрут содержит отдельный участок пути от каждой путевой точки к следующей. Например, если маршрут содержит одну точку отправления и одну точку назначения, то маршрут содержит один участок. Для каждой дополнительной путевой точки, которую вы добавляете в маршрут после пункта отправления и назначения, называемой промежуточной путевой точкой , API добавляет отдельный участок.
API не добавляет участок для транзитной промежуточной точки. Например, маршрут, который содержит исходную путевую точку, транзитную промежуточную путевую точку и путевую точку назначения, содержит только один участок пути от исходной точки до пункта назначения при прохождении через путевую точку. Дополнительную информацию о транзитных путевых точках см. в разделе Определение транзитной путевой точки .
Шаг : Одна инструкция на участке маршрута. Шаг — это самая атомарная единица маршрута. Например, шаг может означать «Поверните налево на Мейн-стрит».
Что в ответе
Объект JSON , представляющий ответ API, содержит следующие свойства верхнего уровня:
routes
, массив элементов типа Route . Массивroutes
содержит один элемент для каждого маршрута, возвращаемого API. Массив может содержать максимум пять элементов: маршрут по умолчанию, экологически чистый маршрут и до трех альтернативных маршрутов.geocodingResults
— массив элементов типа GeocodingResults . Для каждого местоположения в запросе (исходная, конечная или промежуточная путевая точка), указанного вами в виде строки адреса или кода Plus , API выполняет поиск по идентификатору места. Каждый элемент этого массива содержит идентификатор места, соответствующий местоположению. Местоположение в запросе, указанное в виде идентификатора места или координат широты/долготы, не включается. Если вы указали все местоположения, используя идентификаторы мест или координаты широты и долготы, этот массив не предоставляется.fallbackInfo
типа FallbackInfo . Если API не может вычислить маршрут на основе всех входных свойств, он может вернуться к использованию другого способа расчета. Если используется резервный режим, это поле содержит подробную информацию о резервном ответе. В противном случае это поле не установлено.
Ответ имеет вид:
{ // The routes array. "routes": [ { object (Route) } ], // The place ID lookup results. "geocodingResults": [ { object (GeocodedWaypoint) } ], // The fallback property. "fallbackInfo": { object (FallbackInfo) } }
Расшифровать массив маршрутов
Ответ содержит массив routes
, где каждый элемент массива имеет тип Route . Каждый элемент массива представляет собой весь маршрут от пункта отправления до пункта назначения. API всегда возвращает хотя бы один маршрут, называемый маршрутом по умолчанию.
Вы можете запросить дополнительные маршруты. Если вы запрашиваете экологически чистый маршрут , то массив может содержать два элемента: маршрут по умолчанию и экологический маршрут. Или задайте computeAlternativeRoutes
значение true
в запросе, чтобы добавить к ответу до трех альтернативных маршрутов.
Каждый маршрут в массиве идентифицируется свойством массива routeLabels
:
Ценить | Описание |
---|---|
DEFAULT_ROUTE | Определяет маршрут по умолчанию. |
FUEL_EFFICIENT | Определяет экологически чистый маршрут. |
DEFAULT_ROUTE_ALTERNATE | Я указываю альтернативный маршрут. |
Массив legs
содержит определение каждого участка маршрута. Остальные свойства, такие как distanceMeters
, duration
и polyline,
содержат информацию о маршруте в целом:
{ "routeLabels": [ enum (RouteLabel) ], "legs": [ { object (RouteLeg) } ], "distanceMeters": integer, "duration": string, "routeLabels": [string], "staticDuration": string, "polyline": { object (Polyline) }, "description": string, "warnings": [ string ], "viewport": { object (Viewport) }, "travelAdvisory": { object (RouteTravelAdvisory) } "routeToken": string }
Из-за текущих условий вождения и других факторов маршрут по умолчанию и экологически чистый маршрут могут совпадать. В данном случае массив routeLabels
содержит обе метки: DEFAULT_ROUTE
и FUEL_EFFICIENT
.
{ "routes": [ { "routeLabels": [ "DEFAULT_ROUTE", "FUEL_EFFICIENT" ], … } ] }
Понимание массива ног
Каждый route
в ответе содержит массив legs
, где каждый элемент массива legs
имеет тип RouteLeg . Каждый участок в массиве определяет путь от одной путевой точки к следующей путевой точке маршрута. Маршрут всегда содержит хотя бы один участок.
Свойство legs
содержит определение каждого шага вдоль участка в массиве steps
. Остальные свойства, такие как distanceMeters
, duration
и polyline
содержат информацию об участке.
{ "distanceMeters": integer, "duration": string, "staticDuration": string, "polyline": { object (Polyline) }, "startLocation": { object (Location) }, "endLocation": { object (Location) }, "steps": [ { object (RouteLegStep) } ], "travelAdvisory": { object (RouteLegTravelAdvisory) } }
Понимание массива шагов
Каждая часть ответа содержит массив steps
, где каждый элемент массива steps
имеет тип RouteLegStep . Шаг соответствует одной инструкции по ноге. Нога всегда содержит хотя бы один шаг.
Каждый элемент массива steps
включает свойство navigationInstruction
типа NavigationInstruction , которое содержит инструкцию шага. Например:
"navigationInstruction": { "maneuver": "TURN_LEFT", "instructions": "Turn left toward Frontage Rd" }
instructions
могут содержать дополнительную информацию об этом шаге. Например:
"navigationInstruction": { "maneuver": "TURN_SLIGHT_LEFT", "instructions": "Slight left (signs for I-90 W/Worcester)nParts of this road may be closed at certain times or days" }
Остальные свойства шага описывают информацию о шаге, такую как distanceMeters
, duration
и polyline
:
{ "distanceMeters": integer, "staticDuration": string, "polyline": { object (Polyline) }, "startLocation": { object (Location) }, "endLocation": { object (Location) }, "navigationInstruction": { object (NavigationInstruction) } }
Укажите язык пошаговых инструкций
API возвращает информацию о маршруте на местном языке, транслитерированную в сценарий, читаемый пользователем, при необходимости, с соблюдением предпочтительного языка. Все компоненты адреса возвращаются на одном языке.
Используйте параметр
languageCode
запроса , чтобы явно указать язык маршрута из списка поддерживаемых языков . Google часто обновляет поддерживаемые языки, поэтому этот список может быть неполным.Если имя недоступно на указанном языке, API использует наиболее близкое совпадение.
Указанный язык может влиять на набор результатов, которые API выбирает для возврата, и порядок их возврата. Геокодер интерпретирует сокращения по-разному в зависимости от языка, например сокращения типов улиц или синонимы, которые могут быть допустимы на одном языке, но недопустимы на другом. Например, utca и tér на венгерском языке являются синонимами улицы.
Понимание массива geocodingResults
Для каждого местоположения в запросе (исходная, конечная или промежуточная точка маршрута), указанного в виде строки адреса или кода Plus , API пытается найти наиболее подходящее местоположение, имеющее соответствующий идентификатор места. Каждый элемент массива geocodingResults
содержит поле placeID
, содержащее местоположение в качестве идентификатора места, и поле type
, определяющее тип местоположения, например street_address
, premise
или airport
.
Массив geocodingResults
содержит три поля:
origin
: если он был указан в виде строки адреса или кода Plus, идентификатор места происхождения. В противном случае это поле опускается в ответе.destination
: если он был указан в виде строки адреса или кода Plus, идентификатор места пункта назначения. В противном случае это поле опускается в ответе.intermediates
: массив, содержащий идентификатор места любых промежуточных путевых точек, указанных в виде строки адреса или кода Plus. Если вы укажете промежуточную точку, используя идентификатор места или координаты широты и долготы, она будет опущена в ответе. Используйте свойствоintermediateWaypointRequestIndex
в ответе, чтобы определить, какая промежуточная путевая точка в запросе соответствует идентификатору места в ответе.
"geocodingResults": { "origin": { "geocoderStatus": {}, "type": [ enum (Type) ], "placeId": string }, "destination": { "geocoderStatus": {}, "type": [ enum (Type) ], "placeId": string }, "intermediates": [ { "geocoderStatus": {}, "intermediateWaypointRequestIndex": integer, "type": [ enum (Type) ], "placeId": string }, { "geocoderStatus": {}, "intermediateWaypointRequestIndex": integer, "type": [ enum (Type) ], "placeId": string } ] }
Понимание значений локализованных ответов
Значения локализованного ответа — это дополнительное поле ответа, которое предоставляет локализованный текст для возвращаемых значений параметров. Локализованный текст содержит информацию о продолжительности поездки, расстоянии и системе единиц измерения (метрической или британской). Вы запрашиваете локализованные значения, используя маску поля, и можете либо указать язык и систему единиц, либо использовать значения, полученные API. Дополнительные сведения см. в разделе LocalizedValues .
Например, если вы укажете код языка для немецких (de) и имперских единиц, вы получите значение для distanceMeters
49889,7, а также локализованный текст, указывающий это измерение расстояния в немецких и имперских единицах, то есть «31 Meile».
Вот пример того, что вы увидите для локализованных значений:
{ "localized_values": { "distance": { "text": "31,0 Meile/n" }, "duration": { "text": 38 Minuten}. "static_duration": { "text": 36 Minuten}. } }
Если вы не укажете язык или систему единиц измерения, API определит язык и единицы измерения следующим образом:
- Метод
ComputeRoutes
определяет единицы измерения местоположения и расстояния от исходной путевой точки. Таким образом, для запроса маршрутизации в США API определяет языкen-US
иIMPERIAL
единицы измерения. - По умолчанию метод
ComputeRouteMatrix
использует язык en-US и МЕТРИЧЕСКИЕ единицы измерения.