Как работать с ломаными линиями

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

Метод computeRoutes возвращает маршрут, представленный ломаной линией, в составе ответа. Вы можете запросить ломаные линии двух типов:

  • Базовая ломаная линия (по умолчанию) представляет маршрут без информации о дорожном движении. Запросы, возвращающие базовую ломаную линию, оплачиваются по тарифу Routes Basic. Подробнее об оплате Routes API…
  • Ломаная линия с учетом загруженности дорог содержит информацию о загруженности дорог на маршруте. Загруженность дорог выражается в категориях скорости (NORMAL, SLOW, TRAFFIC_JAM), применимых к заданному интервалу ломаной линии. Запросы ломаных линий с учетом загруженности дорог оплачиваются по тарифу Routes Preferred. Подробнее об оплате Routes API…
  • Мультимодальная ломаная линия содержит информацию об общественном транспорте и дорожном движении. Запросы мультимодальных ломаных линий оплачиваются по тарифу Routes Preferred. Подробнее об оплате Routes API…

Базовая ломаная линия (по умолчанию)

Ломаная линия представлена объектом Polyline, а путь – массивом координат LatLngAltitude. Чтобы получить базовую ломаную линию, вызовите метод computeRoutes со свойством fields, для которого задано значение path, а затем вызовите метод createPolylines для экземпляра маршрута, чтобы получить объект Polyline.

В следующем примере показано, как запросить простую ломаную линию:

// Define a basic routes request.
const requestWithBasicPolyline = {
  origin: '155 Steuart St, San Francisco, CA 94105',
  destination: '450 Powell St, San Francisco, CA 94102',
  travelMode: 'WALKING',
  fields: ['path'],  // Request path field to get a polyline.
};
  

Ломаная линия с учетом трафика

Чтобы запросить ломаную линию с учетом трафика, добавьте в запрос следующие свойства:

  1. Задайте для свойства travelMode значение DRIVING.
  2. Задайте для свойства routingPreference значение TRAFFIC_AWARE.
  3. Задайте для свойства extraComputations значение TRAFFIC_ON_POLYLINE.
  4. Укажите поля path, speedPaths и routeLabels.

В следующем примере показано, как запросить ломаную линию с учетом трафика:

// Define a traffic aware routes request.
const requestWithTraffic = {
  origin: '200 King St San Francisco, CA 94107',
  destination: 'Pier 41, San Francisco, CA 94133',
  travelMode: 'DRIVING',
  routingPreference: 'TRAFFIC_AWARE',
  extraComputations: ['TRAFFIC_ON_POLYLINE'],
  fields: ['speedPaths'],
};
  

Как показывать ломаные линии на карте

Чтобы показать ломаные линии на карте, вызовите createPolylines для объекта маршрута, а затем используйте метод setMap, чтобы задать карту ломаной линии для объекта карты. Объект карты используется для отображения ломаной линии на карте.

В следующем примере показано, как отобразить ломаную линию на карте.

  // Call createPolylines to create polylines for the first route.
  mapPolylines = routes[0].createPolylines();
  // Add polylines to the map.
  mapPolylines.forEach((polyline) => polyline.setMap(map));