Alternative Routen abrufen

Entwickler im Europäischen Wirtschaftsraum (EWR)

Standardmäßig gibt die Routes API die Standardroute zurück, die in der Regel die schnellste Route vom Start- zum Zielort ist. Wenn Sie alternative Routen anfordern, gibt die API bis zu drei Routen zusammen mit der Standardroute zurück. Ihre Kunden können dann eine Route auswählen, die ihren Anforderungen am besten entspricht.

Hinweise zum Anfordern von Ausweichrouten

Wenn Sie alternative Routen anfordern, beachten Sie Folgendes:

  • Sie können nur für Routen ohne Zwischenziele alternative Routen anfordern. Das Anfordern alternativer Routen, wenn die Route Zwischenziele enthält, führt nicht zu einem Fehler. Es werden jedoch keine alternativen Routen zurückgegeben.

  • Die Antwort enthält maximal drei alternative Routen. Manchmal sind jedoch keine alternativen Routen verfügbar, sodass die Antwort nur die Standardroute enthält.

  • Da für die Berechnung alternativer Routen eine zusätzliche Verarbeitung erforderlich ist, kann sich die Antwortzeit der API verlängern, wenn Sie alternative Routen anfordern.

Beispielanfrage für alternative Routen

Legen Sie computeAlternativeRoutes auf true fest, um alternative Routen anzufordern. Im folgenden Beispiel wird gezeigt, wie alternative Routen in einer computeRoutes-Anfrage (REST) angefordert werden.

curl -X POST -d '{
  "origin":{
    "location":{
      "latLng":{
        "latitude":42.340173523716736,
        "longitude":-71.05997968330408
      }
    }
  },
  "destination":{
    "location":{
      "latLng":{
        "latitude":42.075698891472804,
        "longitude": -72.59806562080408
      }
    }
  },
  "travelMode": "DRIVE",
  "routingPreference":"TRAFFIC_AWARE",
  "computeAlternativeRoutes": true
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.routeLabels' \
'https://routes.googleapis.com/directions/v2:computeRoutes'

In diesem Beispiel geben Sie eine Feldmaske an, damit die Antwort nur die Attribute duration, distanceMeters, und routeLabels für jede Route enthält. Anhand dieser Informationen kann Ihr Kunde dann entscheiden, welche Route er nehmen möchte. Weitere Informationen finden Sie unter Festlegen, welche Informationen zurückgegeben werden sollen.

Beispiel für eine Antwort zu alternativen Routen

Verwenden Sie in der Antwort das Array-Attribut routeLabels, um den Reichweitenpfad zu identifizieren:

  • Für die Standardroute enthält das Attribut routeLabels den Wert DEFAULT_ROUTE.

  • Bei alternativen Routen enthält die Eigenschaft routeLabels den Wert DEFAULT_ROUTE_ALTERNATE.

In diesem Beispiel enthält die Antwort die Standardroute und zwei alternative Routen. Die Werte der Eigenschaften duration und distanceMeters sind für jede Route unterschiedlich:

{
  "routes": [
    {
      "distanceMeters": 150322,
      "duration": "5309s",
      "routeLabels": [
        "DEFAULT_ROUTE"
      ]
    },
    {
      "distanceMeters": 157614,
      "duration": "6879s",
      "routeLabels": [
        "DEFAULT_ROUTE_ALTERNATE"
      ]
    },
    {
      "distanceMeters": 189311,
      "duration": "7376s",
      "routeLabels": [
        "DEFAULT_ROUTE_ALTERNATE"
      ]
    }
   ]
}

Polylinien in die Antwort einbeziehen

Fügen Sie der Antwort für jede Route die polyline hinzu, um die Auswahl der Route für den Nutzer zu vereinfachen. Anschließend können Sie jede Polylinie auf einer Karte darstellen.

Wenn Sie die Polylinie hinzufügen möchten, fügen Sie routes.polyline in die Feldmaske ein:

-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.routeLabels,routes.polyline'

Die Antwort enthält dann den Linienzug für jede Route:

{
  "routes": [
    {
      "distanceMeters": 150322,
      "duration": "5309s",
      "polyline": {
        "encodedPolyline": "mrlaGtavpLPLBTm…PgA^qC"
      },
      "routeLabels": [
        "DEFAULT_ROUTE"
      ]
    },
    {
      "distanceMeters": 157614,
      "duration": "6879s",
      "polyline": {
        "encodedPolyline": "DmEd`@e@pCo@pCs@z…PgA^qC"
      },
      "routeLabels": [
        "DEFAULT_ROUTE_ALTERNATE"
      ]
    },
    {
      "distanceMeters": 189311,
      "duration": "7376s",
      "polyline": {
        "encodedPolyline": "FVLL|Af@HPAV…PgA^qC"
      },
      "routeLabels": [
        "DEFAULT_ROUTE_ALTERNATE"
      ]
    }
   ]
}