Когда API Routes вычисляет маршрут, он принимает путевые точки и параметры конфигурации, которые вы предоставляете в качестве входных данных. Затем API возвращает ответ, содержащий маршрут по умолчанию и один или несколько альтернативных маршрутов.
Ваш ответ может включать различные типы маршрутов и другие данные в зависимости от запрашиваемых вами полей:
Чтобы включить это в ответ | См. эту документацию |
---|---|
Наиболее экономичный с точки зрения расхода топлива или энергии маршрут в зависимости от типа двигателя транспортного средства. | Настройте экологически чистые маршруты |
До трех альтернативных маршрутов | Запросить альтернативные маршруты |
Полилиния для всего маршрута, для каждого отрезка маршрута и для каждого шага отрезка. | Запросить маршрут полилиний |
Расчетная стоимость проезда с учетом любых скидок на плату за проезд или проездных билетов, доступных водителю или транспортному средству. | Рассчитать стоимость проезда |
Локализованные ответы по языковым кодам и единицам измерения (имперские или метрические). | Запросить локализованные значения |
Чтобы отформатировать инструкции по навигации в виде текстовой строки HTML, добавьте HTML_FORMATTED_NAVIGATION_INSTRUCTIONS в extraComputations . | Дополнительные вычисления |
Полный список параметров ввода см. в разделах Доступные параметры маршрутизации и Тело запроса .
Используя ответ, вы можете предоставить своим клиентам информацию, необходимую для выбора подходящего маршрута с учетом их потребностей.
О полевых масках
При вызове метода для вычисления маршрута необходимо указать маску поля, которая определяет, какие поля вы хотите вернуть в ответе. Списка возвращаемых полей по умолчанию нет. Если этот список пропустить, методы вернут ошибку.
Примеры в этом документе показывают весь объект ответа без учета масок полей. В производственной среде ваш ответ будет включать только поля, которые вы явно указываете в маске поля.
Для получения дополнительной информации см. раздел Выбор возвращаемой информации .
О показе авторских прав
При демонстрации результатов пользователям вы должны включить следующее заявление об авторских правах:
Powered by Google, © YEAR Google
Например:
Powered by Google, ©2023 Google
О маршрутах, этапах и шагах
Прежде чем просматривать ответ, возвращаемый API маршрутов, вам следует иметь представление о компонентах, из которых состоит маршрут:
Ваш ответ может содержать информацию о каждом из этих компонентов маршрута:
Маршрут : Весь маршрут от исходной точки маршрута, через любые промежуточные точки маршрута, до точки назначения. Маршрут состоит из одного или нескольких этапов .
Leg : Путь от одной точки маршрута до следующей точки маршрута. Каждый отрезок состоит из одного или нескольких отдельных шагов .
Маршрут содержит отдельный отрезок пути от каждой точки маршрута до следующей. Например, если маршрут содержит одну исходную точку маршрута и одну конечную точку маршрута, то маршрут содержит один отрезок. Для каждой дополнительной точки маршрута, которую вы добавляете к маршруту после исходной и конечной точек маршрута, называемой промежуточной точкой маршрута , API добавляет отдельный отрезок.
API не добавляет отрезок для промежуточной точки маршрута pass-through . Например, маршрут, содержащий исходную точку маршрута, промежуточную точку маршрута pass-through и точку маршрута destination, содержит только один отрезок от исходной точки до точки назначения, проходя через точку маршрута. Для получения дополнительной информации о точках маршрута pass-through см. Определение точки маршрута pass-through .
Шаг : Отдельная инструкция по ходу маршрута. Шаг — это самая атомарная единица маршрута. Например, шаг может означать «Поверните налево на Главной улице».
Что в ответе?
Объект JSON , представляющий ответ API, содержит следующие свойства верхнего уровня:
routes
, массив элементов типа Route . Массивroutes
содержит один элемент для каждого маршрута, возвращаемого API. Массив может содержать максимум пять элементов: маршрут по умолчанию, экологичный маршрут и до трех альтернативных маршрутов.geocodingResults
, массив элементов типа GeocodingResults . Для каждого местоположения в запросе (исходная точка, пункт назначения или промежуточная точка маршрута), которое вы указали как адресную строку или как Plus code , 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
содержит определение каждого шага вдоль leg в массиве steps
. Остальные свойства, такие как distanceMeters
, duration
и polyline
содержат информацию об leg.
{ "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 code , API пытается найти наиболее релевантное местоположение, имеющее соответствующий идентификатор места. Каждый элемент массива geocodingResults
содержит поле placeID
, содержащее местоположение как идентификатор места, и поле type
указывающее тип местоположения, например street_address
, premise
, или airport
.
Массив geocodingResults
содержит три поля:
origin
: Если он был указан как адресная строка или как код Plus, идентификатор места origin. В противном случае это поле исключается из ответа.destination
: Если он был указан как адресная строка или как Plus code, идентификатор места назначения. В противном случае это поле исключается из ответа.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» и метрические единицы измерения.