Wählen Sie aus, welche Informationen zurückgegeben werden sollen
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 weglassen, geben die Methoden einen Fehler zurück.
Sie geben die Feldliste an, indem Sie eine Antwortfeldmaske erstellen. Sie bestehen dann
die Antwortfeldmaske auf eine der beiden Methoden mithilfe des URL-Parameters $fields
oder
fields
oder mithilfe des HTTP- oder gRPC-Headers X-Goog-FieldMask
.
Die Verwendung einer Feldmaske ist eine gute Designpraxis, um sicherzustellen, dass Sie keine und unnötige Daten, 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, in denen jeder Pfad path gibt ein eindeutiges Feld in der Antwortnachricht an. Der Pfad beginnt mit der Antwortnachricht der obersten Ebene und verwendet durch einen Punkt getrennte Pfad zum angegebenen Feld.
Erstellen Sie einen Feldpfad und geben Sie ihn so an:
- Suchen Sie die Felder mit den benötigten Informationen aus der Routes API. Weitere Informationen finden Sie unter Feldverweise.
- Pfade für die benötigten Felder ermitteln und Feldmasken dafür erstellen: Weitere Informationen finden Sie unter Feldmaske festlegen.
Kombinieren Sie die Feldmasken für alle erforderlichen Felder und trennen Sie sie durch Kommas. Wenn Sie beispielsweise die
distanceMeters
für den Routenabschnitt und die Dauer für jeden Routenabschnitt anfordern möchten, geben Sie beide 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 Referenzen umfassen die verfügbaren Felder. Sie müssen sich jedoch auf die Hierarchie der Felder beziehen, um den vollständigen Feldmaskenpfad zu ermitteln. Weitere Informationen zum Abrufen der Hierarchie der Felder finden Sie im Hilfeartikel Welche Feldmaske soll verwendet werden?.
- Feldmaske für Compute-Route
- Feldmasken der Routenmatrix berechnen
- REST: Gibt an, welche Felder des Antworttexts zurückgegeben werden sollen.
- gRPC: Gibt die Felder der RouteMatrixElement -Objekt in der zurückzugebenden Antwort.
Feldmasken festlegen
So können Sie festlegen, welche Felder Sie verwenden möchten, und die Feldmasken dafür erstellen:
- Alle Felder anfordern mit einer Feldmaske von
*
. - Suchen Sie in der Antwort nach der Hierarchie der Felder, um die gewünschten Felder zu finden.
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 Ihre Feldmaske mit dem obigen Ergebnis so aus:
routes.legs.distanceMeters,routes.legs.steps.distanceMeters
Beispiele für Feldmaskenpfade
Dieser Abschnitt enthält weitere Beispiele zum Angeben eines Feldpfads als Teil einer Antwortfeldmaske in REST- und gRPC-Aufrufen.
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
Für REST computeRouteMatrix
-Methode zur Berechnung einer Routenmatrix. Geben Sie im Header an, dass die Daten zurückgegeben werden sollen.
originIndex
, destinationIndex
und duration
für jede Ursprungskombination
und Ziel:
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
Nehmen Sie nur die Felder in die Antwort auf, die Sie benötigen, um nur das Feld die Sie benötigen:
- Reduziert die Verarbeitungszeiten, sodass die 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.
- So wird verhindert, dass Sie unnötige Daten anfordern, was wiederum hilft, unnötige Verarbeitungszeiten und in Rechnung gestellte Gebühren zu vermeiden.
Weitere Informationen zum Erstellen einer Feldmaske finden Sie in field_mask.proto.
Routingtoken anfordern
So fordern Sie an, dass die Routes API Routentokens für generierte Routen zurückgibt:
- Legen Sie die folgenden Parameter fest, die erforderlich sind, um ein Routentoken zurückzugeben:
- 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) oder Route planen (iOS)
Beispiel für Routentoken
Hier ist ein Beispiel für einen cURL-Anfragetext für einen einzelnen Start- und Zielort Route mit Feldmasken zum Anfordern eines Routing-Tokens zusammen mit der Route Dauer, Entfernung und Polylinie der Route:
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 Referenz zur Compute Routes API