Auswählen, welche Informationen zurückgegeben werden sollen

Wenn Sie eine Methode zum Berechnen einer Route oder zum Berechnen einer Routenmatrix aufrufen, müssen Sie die gewünschten Informationen angeben. Dazu geben Sie an, welche Felder in der Antwort zurückgegeben werden sollen. Es gibt keine Standardliste zurückgegebener Felder. Wenn Sie diese Liste auslassen, geben die Methoden einen Fehler zurück.

Sie geben die Feldliste an, indem Sie eine Antwortfeldmaske erstellen. Anschließend übergeben Sie die Antwortfeldmaske mit dem URL-Parameter $fields oder fields oder mit dem HTTP- oder gRPC-Header X-Goog-FieldMask an eine der beiden Methoden.

Die Feldmaskierung hat sich bewährt, um dafür zu sorgen, dass keine unnötigen Daten angefordert werden. So lassen sich unnötige Verarbeitungszeit und in Rechnung gestellte Kosten vermeiden.

Weitere Informationen zu URL-Parametern finden Sie unter Systemparameter.

Antwortfeldmaske definieren

Die Antwortfeldmaske ist eine durch Kommas getrennte Liste von Pfaden, wobei jeder Pfad ein eindeutiges Feld in der Antwortnachricht angibt. Der Pfad beginnt mit der übergeordneten Antwortnachricht und verwendet einen durch Punkte getrennten Pfad zum angegebenen Feld.

Erstellen Sie einen Feldpfad wie folgt:

topLevelField[.secondLevelField][.thirdLevelField][...]
  • Feldmaske für Compute-Route
    • REST: Gibt die Felder des Objekts Route in der Antwort an, die zurückgegeben werden sollen. Das Präfix routes. ist vorangestellt, z. B. routes.distanceMeters.
    • gRPC: Gibt die Felder des Route-Objekts in der Antwort an, die zurückgegeben werden soll.
  • Feldmasken für die Compute-Route-Matrix
    • REST: Gibt die Felder des Antworttextes an, die zurückgegeben werden sollen.
    • gRPC: Gibt die Felder des Objekts RouteMatrixElement in der Antwort an, die zurückgegeben werden soll.

Weitere Informationen zum Erstellen von Feldmasken finden Sie unter field_mask.proto.

Bestimmen, welche Feldmasken verwendet werden sollen

So bestimmen Sie, welche Feldmasken Sie verwenden möchten:

  1. Fordern Sie alle Felder mit der Feldmaske * an.
  2. Sehen Sie sich die Hierarchie der Felder in der Antwort an und legen Sie die gewünschten Felder fest.
  3. Erstellen Sie die Feldmaske mithilfe der Feldhierarchie.

Für diese Teilantwort von einer Route mit öffentlichen Verkehrsmitteln:

 "routes": [
  {
    "legs": [
    {
      "distanceMeters": 12886,
    }
...
]}]

Wenn Sie nur das Feld distanceMeters zurückgeben möchten, lautet Ihre Feldmaske:

routes.legs.distanceMeters

Ein weiteres Beispiel: Damit alles unter legs in der Antwort zurückgegeben wird, lautet die Feldmaske:

routes.legs

Feldpfad angeben

Dieser Abschnitt enthält Beispiele dazu, wie Sie einen Feldpfad als Teil einer Antwortfeldmaske angeben.

REST-Aufruf an computeRoutes

Im ersten Beispiel verwenden Sie einen REST-Aufruf an die Methode computeRoutes, um eine Route zu berechnen. In diesem Beispiel geben Sie im Header Feldmasken an, die die Felder Route.distanceMeters und Route.duration in der Antwort zurückgeben. Denken Sie daran, dem Feldnamen routes voranzustellen.

-H X-Goog-FieldMask: routes.distanceMeters,routes.duration

REST-Aufruf an computeRouteMatrix

Geben Sie für die REST-Methode computeRouteMatrix, die zum Berechnen einer Routenmatrix verwendet wird, im Header für jede Kombination aus Start- und Zielort originIndex, destinationIndex und duration an:

-H X-Goog-FieldMask: originIndex,destinationIndex,duration

gRPC-Aufruf

Legen Sie für gRPC eine Variable fest, die die Antwortfeldmaske enthält. Sie können diese Variable dann an die Anfrage übergeben.

const (
  fieldMask = "routes.distanceMeters,routes.duration,routes.polyline.encodedPolyline"
)

Überlegungen zu Feldpfaden

Geben Sie nur die Felder an, die in der Antwort erforderlich sind. Geben Sie nur die Felder zurück, die Sie benötigen:

  • Verringert die Verarbeitungszeiten, sodass Ergebnisse mit einer geringeren Latenz zurückgegeben werden.
  • Sorgt für eine stabile Latenzleistung, wenn die API in Zukunft weitere Antwortfelder hinzufügt und diese neuen Felder zusätzliche Rechenzeit erfordern. Wenn Sie alle Felder oder alle Felder auf der obersten Ebene auswählen, kann es zu Leistungseinbußen kommen, wenn alle neuen Felder automatisch in Ihre Antwort aufgenommen werden.
  • Verkleinert die Antwortgröße, was zu einem höheren Netzwerkdurchsatz führt.
  • Es wird sichergestellt, dass keine unnötigen Daten angefordert werden. So vermeiden Sie unnötige Verarbeitungszeit und in Rechnung gestellte Kosten.

Routentoken anfordern

Wenn Sie möchten, dass die Routes API Routentokens für generierte Routen zurückgibt, folgen Sie den Anforderungen für die Rückgabe eines Routentokens und verwenden Sie dann die Feldmaske routes.route_token, um das Token anzufordern:

  1. Setzen Sie travel_mode auf DRIVING.
  2. Legen Sie routing_preference auf TRAFFIC_AWARE oder TRAFFIC_AWARE_OPTIMAL fest.
  3. Keine der Wegpunkte der Route darf via-Wegpunkte sein.
  4. Geben Sie die Feldmaske für das Routentoken an:
    -H X-Goog-FieldMask: routes.route_token

Sie können Ihre geplante Route im Navigation SDK verwenden. Weitere Informationen finden Sie unter Route planen (Android) bzw. Route planen (iOS).

Beispiel für Routentoken

Hier sehen Sie ein Beispiel für einen cURL-Anfragetext für eine einzelne Ausgangsroute mit einem einzelnen Ziel, bei der mithilfe von Feldmasken ein Routentoken sowie die Dauer, Entfernung und Polylinie der Route angefordert werden:

curl -X POST -d
{"origin":{
    "location": {
        "latLng":{
            "latitude":  -37.8167,
            "longitude": 144.9619
        }
    }
},
"destination":{
    "location": {
        "latLng":{
            "latitude":-37.8155,
            "longitude": 144.9663
        }
    }
},
"routingPreference":"TRAFFIC_AWARE",
"travelMode":"DRIVE"
}
-H 'X-Goog-Api-Key: YOUR_API_KEY' \
-H X-Goog-FieldMask: routes.route_token,routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline
'https://routes.googleapis.com/directions/v2:computeRoutes'

Weitere Informationen finden Sie in der Referenz zur Compute Routes API.