Перейти к классу Route

Новая библиотека маршрутов Maps JavaScript API включает класс Route , который заменяет устаревший Directions Service . На этой странице объясняются различия между устаревшим сервисом маршрутов и новым классом Route , а также представлен фрагмент кода для сравнения.

Служба маршрутизации (устаревшая) и класс маршрута (бета-версия)

Параметры запроса

В следующей таблице сравниваются параметры запроса для устаревшей службы Directions и класса Route .

Служба маршрутов (устаревшая) Route (бета)
Метод DirectionsService.route() Метод Route.computeRoutes()

Обязательные параметры

origin origin
destination destination
travelMode travelMode (необязательно)

Дополнительные параметры

optimizeWaypoints optimizeWaypointOrder
provideRouteAlternatives computeAlternativeRoutes
avoidFerries , avoidHighways , avoidTolls routeModifiers
drivingOptions departureTime , trafficModel
region region
transitOptions transitPreference
arrivalTime arrivalTime
unitSystem units
waypoints intermediates

Сравнение методов

В следующей таблице сравниваются основные методы устаревшей службы Directions и класса Route .

Служба маршрутов (устаревшая) Route (бета)
метод route() метод computeRoutes()
Метод DirectionsRenderer.setDirections() Метод createPolylines() , метод createWaypointAdvancedMarkers()

Сравнение кодов

В этом разделе сравниваются два похожих фрагмента кода, чтобы проиллюстрировать различия между устаревшим сервисом Directions и новым классом Route . Фрагменты кода показывают код, необходимый для выполнения запроса маршрута в каждом API, а затем использование результата для рисования ломаной линии и маркеров на карте.

В устаревшей службе Directions объект DirectionsRenderer используется для отображения полилиний и маркеров, представляющих результаты маршрута на карте. В библиотеке Routes объект DirectionsRenderer был заменён методами createPolylines() и createWaypointAdvancedMarkers() . На этой странице объясняются различия между устаревшей службой Directions и новым классом Route , а также приведён пример кода для сравнения.

Получить маршрут проезда

Служба маршрутов (устаревшая)

Следующий код получает маршруты проезда с помощью устаревшей службы Directions, а затем использует DirectionsRenderer для рисования полилинии и маркеров на карте:

// Define a simple request.
var request = {
  origin: 'Mountain View, CA',
  destination: 'San Francisco, CA',
  travelMode: 'DRIVING'
};
// Call the Directions Service to get the directions.
directionsService.route(request, function(result, status) {
  if (status == 'OK') {
    directionsRenderer.setDirections(result); // Add polyline and markers to the map.
  }
});

Класс маршрута (бета)

Следующий код получает маршруты проезда с помощью нового класса Route, затем использует метод createPolylines для рисования полилинии на карте и метод createWaypointAdvancedMarkers для рисования маркеров на карте.

Новый класс Route не отображает маркеры автоматически. Для отображения маркеров необходимо вызвать createWaypointAdvancedMarkers .

// Define a simple request.
const request = {
  origin: 'Mountain View, CA',
  destination: 'San Francisco, CA',
  travelMode: 'DRIVING',
  fields: ['path', 'legs'], // Request fields needed to draw polylines.
};

// Call computeRoutes to get the directions.
const {routes} = await Route.computeRoutes(request);

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

// Create markers to start and end points.
const markers = await routes[0].createWaypointAdvancedMarkers();
// Add markers to the map
markers.forEach((marker) => marker.setMap(map));