Zurückzugebende Informationen auswählen
Wenn Sie eine Methode zum Berechnen einer Route oder Routenmatrix aufrufen, müssen Sie angeben, welche Informationen Sie benötigen. Geben Sie dazu die Felder an, die in der Antwort zurückgegeben werden sollen. Es gibt keine Standardliste der zurückgegebenen Felder. Wenn Sie diese Liste auslassen, geben die Methoden einen Fehler zurück.
Zum Angeben der Feldliste erstellen Sie eine Antwortfeldmaske. Anschließend übergeben Sie die Antwortfeldmaske mithilfe des URL-Parameters $fields
oder fields
an eine der beiden Methoden oder mit dem HTTP- oder gRPC-Header X-Goog-FieldMask
.
Die Verwendung einer Feldmaske hat sich bewährt, um sicherzustellen, dass keine unnötigen Daten angefordert werden, was wiederum dazu beiträgt, unnötige Verarbeitungszeiten und in Rechnung gestellte Kosten zu 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 Antwortnachricht der obersten Ebene und verwendet einen durch Punkte getrennten Pfad zum angegebenen Feld.
So erstellen und geben Sie einen Feldpfad an:
- Suchen Sie in der Routes API nach den Feldern, die die benötigten Informationen enthalten. Weitere Informationen finden Sie unter Feldverweise.
- Pfade für die benötigten Felder bestimmen und Feldmasken dafür erstellen: Weitere Informationen finden Sie unter Zu verwendende Feldmaske bestimmen.
Kombinieren Sie die Feldmasken für alle benötigten Felder und trennen Sie die Feldmasken durch Kommas. Wenn Sie beispielsweise den
distanceMeters
für den Streckenabschnitt sowie die Dauer für jeden Schritt des Streckenabschnitts anfordern möchten, geben Sie beide Werte durch ein Komma getrennt und ohne Leerzeichen ein:routes.legs.distanceMeters,routes.legs.steps.duration
Senden Sie die Feldmaske mit Ihrer API-Anfrage. In einer cURL-Anfrage geben Sie die Feldmaske beispielsweise mit
-H
undX-Goog-FieldMask
an:-H X-Goog-FieldMask: routes.legs.distanceMeters,routes.legs.steps.duration
Feldverweise
Die Felder, die Sie in einer Antwort über Feldmasken anfordern können, finden Sie in den Routes API-Referenzen, die in der folgenden Liste verlinkt sind. Geben Sie die Felder in Camel Case an, wie in der Referenz gezeigt. Beispiel: routePreference
.
Diese Verweise enthalten die verfügbaren Felder. Sie müssen jedoch die Hierarchie der Felder berücksichtigen, um den vollständigen Pfad der Feldmaske zu ermitteln. Weitere Informationen zum Abrufen der Hierarchie der Felder finden Sie unter Feldmaske festlegen.
- Maske für das Feld „Route“ berechnen
- Feldmasken für die Routenmatrix berechnen
- REST: Gibt die Felder des Antworttextes an, der zurückgegeben werden soll.
- gRPC: Gibt die Felder des RouteMatrixElement-Objekts in der Antwort an, die zurückgegeben werden sollen.
Feldmasken festlegen
So können Sie festlegen, welche Felder Sie verwenden möchten, und die Feldmasken dafür erstellen:
- Fordern Sie alle Felder an, indem Sie eine Feldmaske von
*
verwenden. - Suchen Sie in der Antwort nach der gewünschten Feldhierarchie.
Erstellen Sie Ihre Feldmasken anhand der im vorherigen Schritt gezeigten Feldhierarchie im folgenden Format:
topLevelField[.secondLevelField][.thirdLevelField][...]
Für diese Teilantwort von einer Route gilt beispielsweise Folgendes:
"routes": [ { "legs": [ { "steps": [ {"distanceMeters": 119}, {"distanceMeters": 41} ] } ], "distanceMeters": 160 } ]
Wenn Sie nur das Feld distanceMeters
für den Streckenabschnitt zurückgeben möchten, also die letzte distanceMeters
im vorherigen Beispiel, lautet die Feldmaske so:
routes.legs.distanceMeters
Wenn Sie stattdessen das Feld distanceMeters
für jeden Schritt des Streckenabschnitts zurückgeben möchten, also das distanceMeters
unter steps
im vorherigen Beispiel, lautet die Feldmaske so:
routes.legs.steps.distanceMeters
Wenn Sie beide zurückgeben möchten, sieht die Feldmaske mit dem obigen Ergebnis so aus:
routes.legs.distanceMeters,routes.legs.steps.distanceMeters
Beispielpfade für Feldmasken
Dieser Abschnitt enthält weitere Beispiele dazu, wie Sie einen Feldpfad als Teil einer Antwortfeldmaske in REST- und gRPC-Aufrufen angeben.
REST-Aufruf an computeRoutes
Im ersten Beispiel wird ein REST-Aufruf an die Methode computeRoutes
verwendet, um eine Route zu berechnen. In diesem Beispiel geben Sie im Header Feldmasken an, um die Routenfelder distanceMeters
und duration
in der Antwort zurückzugeben. Denken Sie daran, dem Feldnamen routes
voranzustellen.
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, in der Kopfzeile an, dass für jede Kombination aus Start- und Zielort originIndex
, destinationIndex
und duration
zurückgegeben werden sollen:
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
Fügen Sie nur die erforderlichen Felder in die Antwort ein, damit nur die erforderlichen Felder zurückgegeben werden:
- Verringert die Verarbeitungszeiten, sodass Ihre Ergebnisse mit einer geringeren Latenz zurückgegeben werden.
- Sorgt für eine stabile Latenzleistung. Wenn Sie alle Felder oder alle Felder auf oberster Ebene auswählen, kann es zu Leistungseinbußen kommen, wenn neue Felder hinzugefügt und dann automatisch in die Antwort eingeschlossen werden.
- Die Antwortgröße ist kleiner, was zu einem höheren Netzwerkdurchsatz führt.
- Sorgt dafür, dass keine unnötigen Daten angefordert werden, um unnötige Verarbeitungszeiten und in Rechnung gestellte Kosten zu vermeiden.
Weitere Informationen zum Erstellen einer Feldmaske finden Sie in field_mask.proto.
Routen-Token anfordern
So fordern Sie an, dass die Routes API Routentokens für generierte Routen zurückgibt:
- Legen Sie die folgenden Parameter fest, die zum Zurückgeben eines Routentokens erforderlich sind:
- Setzen Sie
travelMode
aufDRIVE
. - Legen Sie
routingPreference
aufTRAFFIC_AWARE
oderTRAFFIC_AWARE_OPTIMAL
fest.
- Setzen Sie
- Prüfen Sie, ob keine Ihrer Routen-Wegpunkte
via
-Wegpunkte sind. - Gib die Feldmaske
routes.routeToken
an, um ein Routen-Token zurückzugeben:X-Goog-FieldMask: routes.routeToken
Sie können das Routentoken für Ihre geplante Route im Navigation SDK verwenden. Weitere Informationen finden Sie unter Route planen (Android) bzw. Route planen (iOS).
Beispiel für Routentoken
Hier ist ein Beispiel für den cURL-Anfragetext für eine Route mit einem Start- und einem Zielort. Dabei wird ein Routen-Token sowie die Routendauer, -entfernung und -polylinie mithilfe von Feldmasken angefordert:
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.routeToken,routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline 'https://routes.googleapis.com/directions/v2:computeRoutes'
Weitere Informationen finden Sie in der Compute Routes API-Referenz.