Die neue Routes Library der Maps JavaScript API enthält die Route Klasse, die den
Legacy-Dienst „Directions“ ersetzt. Auf dieser
Seite werden die Unterschiede zwischen dem Legacy-Dienst „Directions“ und der neuen Route
Klasse erläutert und einige Codebeispiele zum Vergleich bereitgestellt.
Dienst „Directions“ (Legacy) im Vergleich zur Klasse „Route“
Anfrageparameter
In der folgenden Tabelle werden die Anfrageparameter für den Legacy-Dienst „Directions“ und die
Route Klasse verglichen.
Vergleich der Methoden
In der folgenden Tabelle werden die wichtigsten Methoden für den Legacy-Dienst „Directions“ und die
Route Klasse verglichen.
| Dienst „Directions“ (Legacy) | Route |
|---|---|
route() Methode |
computeRoutes()-Methode |
DirectionsRenderer.setDirections() Methode |
Methode createPolylines(),
Methode createWaypointAdvancedMarkers()
|
Codevergleich
In diesem Abschnitt werden zwei ähnliche Codebeispiele verglichen, um die Unterschiede zwischen dem
Legacy-Dienst „Directions“ und der neuen Route Klasse zu veranschaulichen. Die Code-Snippets zeigen den Code
der für die jeweilige API erforderlich ist, um eine Routenanfrage zu stellen und dann das Ergebnis zu verwenden, um eine
Polylinie und Markierungen auf der Karte zu zeichnen.
Im Legacy-Dienst „Directions“ werden mit dem
DirectionsRenderer
Objekt Polylinien und Markierungen angezeigt, um die Routenergebnisse auf einer Karte darzustellen. In der Routes Library wurde das DirectionsRenderer Objekt durch die createPolylines() und createWaypointAdvancedMarkers() Methoden ersetzt. Auf dieser Seite werden die Unterschiede zwischen dem Legacy-Dienst „Directions“ und der neuen
Route Klasse erläutert und einige Codebeispiele zum Vergleich bereitgestellt.
Wegbeschreibung abrufen
Dienst „Directions“ (Legacy)
Mit dem folgenden Code wird eine Wegbeschreibung mit dem Legacy-Dienst „Directions“ berechnet und dann mit
dem DirectionsRenderer eine Polylinie und Markierungen auf der Karte gezeichnet:
// 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. } });
Klasse „Route“
Mit dem folgenden Code wird eine Wegbeschreibung mit der neuen Klasse „Route“ abgerufen. Anschließend wird mit der Methode createPolylines eine Polylinie auf der Karte gezeichnet und mit der Methode createWaypointAdvancedMarkers Markierungen auf der Karte gezeichnet.
Mit der neuen Klasse Route werden Markierungen nicht automatisch gerendert. Sie müssen
createWaypointAdvancedMarkers aufrufen, um Markierungen zu rendern.
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; });