A nova biblioteca Routes da API Maps JavaScript inclui a classe Route
, que substitui o
serviço Directions legado. Esta
página explica as diferenças entre o serviço de rotas legado e a nova classe Route
e fornece alguns códigos para comparação.
Serviço Directions (legado) x classe Route (Beta)
Parâmetros de solicitação
A tabela a seguir compara os parâmetros de solicitação do serviço Directions legado e da classe
Route
.
Comparação de métodos
A tabela a seguir compara os principais métodos do serviço Directions legado e da classe
Route
.
Serviço Directions (legado) | Route (Beta) |
---|---|
Método route() |
Método computeRoutes() |
Método DirectionsRenderer.setDirections() |
método createPolylines() ,
método createWaypointAdvancedMarkers()
|
Comparação de código
Esta seção compara dois trechos de código semelhantes para ilustrar as diferenças entre o serviço Directions legado e a nova classe Route
. Os snippets de código mostram o código
necessário em cada API para fazer uma solicitação de rotas e usar o resultado para desenhar uma
polilinha e marcadores no mapa.
No serviço Directions legado, o objeto
DirectionsRenderer
é usado para mostrar polilinhas e marcadores que representam os resultados de rotas em um mapa. Na biblioteca Routes, o objeto DirectionsRenderer
foi substituído pelos métodos createPolylines()
e createWaypointAdvancedMarkers()
. Esta página explica as diferenças entre o serviço Directions legado e a nova classe Route
, além de fornecer alguns códigos para comparação.
Como chegar
Serviço Directions (legado)
O código a seguir recebe rotas de carro usando o serviço Directions legado e usa
o DirectionsRenderer
para desenhar uma polilinha e marcadores no 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. } });
Classe de rota (Beta)
O código a seguir recebe rotas de carro usando a nova classe Route e, em seguida, usa o método createPolylines
para desenhar uma polilinha no mapa e o método createWaypointAdvancedMarkers
para desenhar marcadores.
A nova classe Route
não renderiza marcadores automaticamente. Você precisa chamar
createWaypointAdvancedMarkers
para renderizar marcadores.
// 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));