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.

Überlegungen beim Anfordern alternativer Routen

Wenn Sie alternative Routen anfordern möchten, beachten Sie Folgendes:

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

  • Aufgrund der zusätzlichen Verarbeitung, die zum Berechnen alternativer Routen erforderlich ist, kann sich die Antwortzeit der API verlängern, wenn Sie alternative Routen anfordern.

Beispiel für eine Anfrage nach alternativen Routen

Setzen Sie computeAlternativeRoutes auf true, um alternative Routen anzufordern. Im folgenden Beispiel wird gezeigt, wie Sie in einer Anfrage an die computeRoutes (REST) alternative Routen anfordern.

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, sodass die Antwort nur die duration, distanceMeters, und routeLabels Attribute für jede Route enthält. Ihr Kunde kann dann anhand dieser Informationen auswählen, welche Route er nehmen möchte. Weitere Informationen finden Sie unter Auszuwählende Informationen.

Beispiel für eine Antwort mit alternativen Routen

Verwenden Sie in der Antwort das Array-Attribut routeLabels, um die einzelnen Routen zu identifizieren:

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

  • Für alternative Routen enthält das Attribut routeLabels den Wert DEFAULT_ROUTE_ALTERNATE.

In diesem Beispiel enthält die Antwort die Standardroute und zwei alternative Routen. Die Werte der Attribute 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 einfügen

Damit der Nutzer die Route leichter auswählen kann, fügen Sie der Antwort die Polylinie für jede Route hinzu. Anschließend können Sie jede Polylinie auf einer Karte anzeigen.

Fügen Sie routes.polyline in die Feldmaske ein, um die Polylinie hinzuzufügen:

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

Die Antwort enthält dann die Polylinie 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"
      ]
    }
   ]
}