Felder für die Rückgabe auswählen
Wenn Sie eine Route oder Routenmatrix anfordern, müssen Sie eine Feldmaske verwenden, um anzugeben, welche Informationen in der Antwort zurückgegeben werden sollen. Es gibt keine Standardliste der zurückgegebenen Felder. Wenn Sie keine Feldmaske angeben, geben die Methoden einen Fehler zurück.
Mit Feldmasken lässt sich auch verhindern, dass unnötige Daten angefordert werden, was wiederum die Antwortlatenz verringert und verhindert, dass Informationen zurückgegeben werden, die Ihr System nicht benötigt.
Sie geben die Liste der benötigten Felder in einer Feldmaske für die Antwort an. Sie übergeben die Antwortfeldmaske dann an eine der beiden Methoden, indem Sie den URL-Parameter $fields
oder fields
oder den HTTP- oder gRPC-Header X-Goog-FieldMask
verwenden.
Weitere Informationen zu URL-Parametern finden Sie unter Systemparameter.
Feldmaske für die Antwort definieren
Die Antwortfeldmaske ist eine durch Kommas getrennte Liste mit 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 die Felder, die die benötigten Informationen enthalten. Weitere Informationen finden Sie unter Feldverweise.
- Pfade für die benötigten Felder ermitteln und die Feldmasken dafür erstellen: Weitere Informationen finden Sie unter Feldmaske auswählen.
Kombinieren Sie die Feldmasken für alle erforderlichen Felder und trennen Sie sie durch Kommas. Wenn Sie beispielsweise die
distanceMeters
für den Routenabschnitt sowie die Dauer für jeden Schritt des Routenabschnitts anfordern möchten, geben Sie beide durch ein Komma getrennt ohne Leerzeichen ein:routes.legs.distanceMeters,routes.legs.steps.duration
Feldmaske mit Ihrer API-Anfrage senden In einer curl-Anfrage würden Sie die Feldmaske beispielsweise mit
-H
undX-Goog-FieldMask
angeben:-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 Referenzen zu Compute Routes oder Compute Route Matrix der Routes API, die in der folgenden Liste verlinkt sind. Geben Sie Felder in CamelCase 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 Feldmaskenpfad zu ermitteln. Weitere Informationen zum Abrufen der Hierarchie der Felder finden Sie unter Feldmaske auswählen.
- Maske für das Feld „Route berechnen“
- Feldmasken für „Compute Route Matrix“
- REST: Gibt die Felder des Antworttexts an, die zurückgegeben werden sollen.
- gRPC: Gibt die Felder des RouteMatrixElement-Objekts an, die in der Antwort zurückgegeben werden sollen.
Zu verwendende Feldmasken festlegen
So können Sie festlegen, welche Felder Sie verwenden möchten, und die entsprechenden Feldmasken erstellen:
- Alle Felder anfordern mit der Feldmaske
*
. - Sehen Sie sich die Hierarchie der Felder in der Antwort an, um die gewünschten Felder zu finden.
Erstellen Sie Ihre Feldmasken anhand der Hierarchie der Felder, die im vorherigen Schritt gezeigt wurden, in diesem Format:
topLevelField[.secondLevelField][.thirdLevelField][...]
Beispiel:
"routes": [ { "legs": [ { "steps": [ {"distanceMeters": 119}, {"distanceMeters": 41} ] } ], "distanceMeters": 160 } ]
Wenn Sie nur das Feld distanceMeters
für den Routenabschnitt zurückgeben möchten, also das letzte distanceMeters
im vorherigen Beispiel, sieht Ihre Feldmaske so aus:
routes.legs.distanceMeters
Wenn Sie stattdessen das Feld distanceMeters
für jeden Schritt des Routenabschnitts zurückgeben möchten, also das distanceMeters
unter steps
im vorherigen Beispiel, sieht Ihre Feldmaske so aus:
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 dafür, wie Sie einen Feldpfad als Teil einer Antwortfeldmaske in REST- und gRPC-Aufrufen angeben.
REST-Aufruf an computeRoutes
Im ersten Beispiel verwenden Sie einen REST-Aufruf der Methode computeRoutes
, um eine Route zu berechnen. In diesem Beispiel geben Sie im Header Feldmasken an, um die Felder distanceMeters
und duration
der Route 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, im Header 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 mit der Feldmaske für die Antwort fest. Sie können diese Variable dann an die Anfrage übergeben.
const ( fieldMask = "routes.distanceMeters,routes.duration,routes.polyline.encodedPolyline" )
Hinweise zu Feldpfaden
Schließen Sie nur die Felder ein, die Sie in der Antwort benötigen, um nur die Felder zurückzugeben, die Sie benötigen:
- Verkürzt 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 der obersten Ebene auswählen, kann es zu Leistungseinbußen kommen, wenn neue Felder hinzugefügt werden und dann automatisch in Ihre Antwort aufgenommen werden.
- Führt zu einer kleineren Antwortgröße, was zu einem höheren Netzwerkdurchsatz führt.
- Verhindert, dass unnötige Daten angefordert werden, was wiederum hilft, unnötige Verarbeitungszeiten und Gebühren zu vermeiden.
Weitere Informationen zum Erstellen einer Feldmaske finden Sie unter field_mask.proto.