Просмотрите ответ маршрута

Разработчики Европейской экономической зоны (ЕЭЗ)

Когда 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» и метрические единицы измерения.