Alternative Routen anfordern

Standardmäßig gibt die Routes API die Route default zurück. Diese ist normalerweise die schnellste Route vom Start- zum Zielort. Wenn Sie eine Anfrage stellen alternative gibt die API bis zu drei Routen zusammen mit den Standardrouten zurück. Route. 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 die folgenden Überlegungen:

  • Alternative Routen können nur für Routen ohne Zwischenrouten angefordert werden Wegpunkte. Alternative Routen anfordern, wenn für die Route Folgendes angegeben ist: Wegpunkte führen nicht zu einem Fehler. Es gibt jedoch keine Alternative, Routen zurückgegeben.

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

  • Aufgrund der zusätzlichen Verarbeitung, die für die Berechnung alternativer kann das Anfordern alternativer Routen die Antwortzeit die API verwenden.

Beispiel für eine Anfrage für alternative Routen

Setzen Sie computeAlternativeRoutes auf true, um alternative Routen anzufordern. Die das folgende Beispiel zeigt, wie alternative Routen in einem computeRoutes (REST)-Anfrage zu verwenden.

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-Properties für jede Route. Ihr kann er dann anhand dieser Informationen eine Route auswählen. Weitere Informationen finden Sie unter Welche Informationen sollen zurückgegeben werden?.

Beispiel für eine Antwort auf alternative Routen

Verwenden Sie in der Antwort das Array-Attribut routeLabels, um die Reichweite zu identifizieren. Route:

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

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

In diesem Beispiel enthält die Antwort die Standardroute und zwei alternative Routen. Routen planen. Beachten Sie, dass die Werte der Attribute duration und distanceMeters unterscheiden sich je nach Route:

{
  "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 Nutzer die Route leichter auswählen können, fügen Sie polyline für jede Route zur Antwort. Sie können dann um jede Polylinie auf einer Karte anzuzeigen.

Fügen Sie zum Hinzufügen der Polylinie routes.polyline in die Feldmaske ein:

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