La nouvelle bibliothèque Routes de l'API Maps JavaScript inclut la classe Route, qui remplace l'
ancien service Directions. Cette
page explique les différences entre l'ancien service Directions et la nouvelle Route
classe, et fournit du code à des fins de comparaison.
Comparaison entre l'ancien service Directions et la classe Route
Paramètres de requête
Le tableau suivant compare les paramètres de requête de l'ancien service Directions et de la
Route classe.
Comparaison des méthodes
Le tableau suivant compare les méthodes clés de l'ancien service Directions et de la
Route classe.
| Ancien service Directions | Route |
|---|---|
route() méthode |
Méthode computeRoutes() |
DirectionsRenderer.setDirections() méthode |
createPolylines() méthode,
createWaypointAdvancedMarkers() méthode
|
Comparaison de code
Cette section compare deux extraits de code similaires pour illustrer les différences entre l'
ancien service Directions et la nouvelle Route classe. Les extraits de code montrent le code
requis sur chaque API respective pour effectuer une requête d'itinéraire, puis utilisent le résultat pour dessiner une
polyligne et des repères sur la carte.
Dans l'ancien service Directions, l'
DirectionsRenderer
objet est utilisé pour afficher des polylignes et des repères afin de représenter les résultats d'itinéraire sur une carte. Dans
la bibliothèque Routes, l'objet DirectionsRenderer a été
remplacé par les méthodes createPolylines() et createWaypointAdvancedMarkers(). Cette page explique les différences entre l'ancien service Directions et la nouvelle
Route classe, et fournit du code à des fins de comparaison.
Calculer des itinéraires
Ancien service Directions
Le code suivant obtient des itinéraires à l'aide de l'ancien service Directions, puis utilise
le DirectionsRenderer pour dessiner une polyligne et des repères sur la carte :
// 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. } });
Classe Route
Le code suivant obtient des itinéraires à l'aide de la nouvelle classe Route, puis
utilise la méthode createPolylines pour dessiner une polyligne sur la carte et la
méthode createWaypointAdvancedMarkers pour dessiner des repères sur la carte.
La nouvelle classe Route n'affiche pas automatiquement les repères. Vous devez appeler
createWaypointAdvancedMarkers pour afficher les repères.
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; });