La nueva biblioteca de Routes de la API de Maps JavaScript incluye la clase Route, que reemplaza al
servicio Directions heredado. En esta
página, se explican las diferencias entre el servicio Directions heredado y la nueva Route
clase, y se proporciona código para compararlos.
Servicio Directions (heredado) en comparación con la clase Route
Parámetros de solicitud
En la siguiente tabla, se comparan los parámetros de solicitud del servicio Directions heredado y la
Route clase.
Comparación de métodos
En la siguiente tabla, se comparan los métodos clave del servicio Directions heredado y la
Route clase.
| Servicio Directions (heredado) | Route |
|---|---|
route() método |
Método computeRoutes() |
DirectionsRenderer.setDirections() método |
Método createPolylines(),
método createWaypointAdvancedMarkers()
|
Comparación de código
En esta sección, se comparan dos fragmentos de código similares para ilustrar las diferencias entre el
servicio Directions heredado y la nueva clase Route. Los fragmentos de código muestran el código
requerido en cada API respectiva para realizar una solicitud de direcciones y, luego, usar el resultado para dibujar una
polilínea y marcadores en el mapa.
En el servicio Directions heredado, se usa el
DirectionsRenderer
objeto para mostrar polilíneas y marcadores que representan los resultados de las direcciones en un mapa. En
la biblioteca de Routes, el DirectionsRenderer objeto se reemplazó por los createPolylines() y createWaypointAdvancedMarkers()
métodos. En esta página, se explican las diferencias entre el servicio Directions heredado y la nueva
Route clase, y se proporciona código para compararlos.
Cómo llegar en automóvil
Servicio Directions (heredado)
El siguiente código obtiene indicaciones para llegar en automóvil con el servicio Directions heredado y, luego, usa
DirectionsRenderer para dibujar una polilínea y marcadores en el mapa:
// 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. } });
Clase Route
El siguiente código obtiene indicaciones para llegar en automóvil con la nueva clase Route, luego
usa el método createPolylines para dibujar una polilínea en el mapa y el
método createWaypointAdvancedMarkers para dibujar marcadores en el mapa.
La nueva clase Route no renderiza marcadores automáticamente. Debes llamar a
createWaypointAdvancedMarkers para renderizar marcadores.
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; });