Новая библиотека Routes Library и Maps JavaScript API включают класс Route, который заменяет устаревший сервис Directions. На этой странице объясняются различия между устаревшим сервисом прокладки маршрутов и новым классом Route, а также приводятся примеры кода для сравнения.
Сравнение сервиса Directions (устаревшего) и класса Route
Параметры запроса
В таблице ниже сравниваются параметры запроса для устаревшего сервиса Directions и класса Route.
Сравнение методов
В таблице ниже сравниваются основные методы устаревшего сервиса Directions и класса Route.
| Сервис Directions (устаревший) | Route |
|---|---|
Метод route() |
Метод computeRoutes() |
Метод DirectionsRenderer.setDirections() |
Метод createPolylines(),
метод createWaypointAdvancedMarkers()
|
Сравнение кода
В этом разделе сравниваются два похожих фрагмента кода, чтобы проиллюстрировать различия между устаревшим сервисом Directions и новым классом Route. Фрагменты кода показывают, какой код требуется для каждого API, чтобы сделать запрос маршрута, а затем использовать результат для рисования ломаной линии и маркеров на карте.
В устаревшем сервисе Directions для отображения ломаных линий и маркеров, представляющих результаты маршрута на карте, используется объект DirectionsRenderer. В библиотеке Routes объект DirectionsRenderer заменен методами createPolylines() и createWaypointAdvancedMarkers(). На этой странице объясняются различия между устаревшим сервисом Directions Service и новым классом Route, а также приводятся примеры кода для сравнения.
Автомобильные маршруты
Сервис Directions (устаревший)
В следующем примере кода маршрут прокладывается с помощью устаревшего сервиса 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.
TypeScript
// Define a routes request. const request: google.maps.routes.ComputeRoutesRequest = { origin: 'Mountain View, CA', destination: 'San Francisco, CA', travelMode: 'DRIVING', fields: ['path'], // Request fields needed to draw polylines. }; // Call computeRoutes to get the directions. const { routes } = await Route.computeRoutes(request); // Use createPolylines to create polylines for the route. if (!routes) { console.warn('No routes found.'); return; } 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.map = map; });
JavaScript
// Define a routes request. const request = { origin: 'Mountain View, CA', destination: 'San Francisco, CA', travelMode: 'DRIVING', fields: ['path'], // Request fields needed to draw polylines. }; // Call computeRoutes to get the directions. const { routes } = await Route.computeRoutes(request); // Use createPolylines to create polylines for the route. if (!routes) { console.warn('No routes found.'); return; } 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.map = map; });