Alternative Routen abrufen

Entwickler im Europäischen Wirtschaftsraum (EWR)

Standardmäßig gibt die Routes API die Standardroute zurück. Das ist in der Regel die schnellste Route vom Startpunkt zum Ziel. 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

Beachten Sie beim Anfordern alternativer Routen 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.

Beispiel für eine Anfrage nach alternativen Routen

Legen Sie computeAlternativeRoutes auf true fest, um alternative Routen anzufordern. Im folgenden Beispiel wird gezeigt, wie Sie in einer computeRoutes Methode (REST) Anfrage 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 Auswählen, welche Informationen zurückgegeben werden sollen.

Beispiel für eine Antwort auf eine Anfrage nach 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 einbeziehen

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"
      ]
    }
   ]
}