При вычислении маршрута 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 . Каждый элемент leg в массиве определяет путь от одной путевой точки до следующей путевой точки вдоль маршрута. Маршрут всегда содержит как минимум один элемент leg.
Свойство 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. Подробнее см. раздел «Локализованные значения» .
Например, если вы укажете код языка для немецкого (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' и метрические единицы измерения.