Новая библиотека маршрутов Maps JavaScript API включает класс Route , который заменяет устаревший сервис построения маршрутов . На этой странице объясняются различия между устаревшим сервисом построения маршрутов и новым классом Route , а также приводится пример кода для сравнения.
Сервис Directions (устаревший) против класса Route
Параметры запроса
В следующей таблице сравниваются параметры запроса для устаревшей службы Directions и класса Route .
Сравнение методов
В следующей таблице сравниваются основные методы устаревшей службы 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 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; });