Felder für die Rückgabe auswählen

Entwickler im Europäischen Wirtschaftsraum (EWR)

Wenn Sie eine Geocoding-Anfrage stellen, können Sie mit einer Feldmaske die Liste der Felder angeben, die in der Antwort zurückgegeben werden sollen. Für die Endpunkte Geocode an address (Geocodierung einer Adresse), Geocode a location (Geocodierung eines Orts) und Place geocoding (Orts-Geocodierung) werden standardmäßig alle Felder im Antwortobjekt zurückgegeben. Für den Endpunkt Nach Zielorten suchen müssen Sie in der API-Anfrage eine Feldmaske angeben.

Verwenden Sie eine Feldmaske, um unnötige Datenanfragen zu vermeiden. Das kann die Antwortlatenz verringern.

Feldmaske für die Antwort definieren

Die Antwortfeldmaske ist eine durch Kommas getrennte Liste von Pfaden ohne Leerzeichen, wobei jeder Pfad ein eindeutiges Feld im Antwortobjekt angibt. Der Pfad beginnt mit dem Antwortfeld der obersten Ebene und verwendet einen durch Punkte getrennten Pfad zu einem angegebenen Feld.

Übergeben Sie die Antwortfeldmaske an eine Anfrage, indem Sie den URL-Parameter $fields oder fields oder den HTTP- oder gRPC-Header X-Goog-FieldMask verwenden.

Beispiele für Feldmasken

Unten sehen Sie die vollständige Antwort auf eine Anfrage zur Forward-Geocodierung:

{
  "results": [
    {
      "place": "//places.googleapis.com/places/ChIJF4Yf2Ry7j4AR__1AkytDyAE",
      "placeId": "ChIJF4Yf2Ry7j4AR__1AkytDyAE",
      "location": {
        "latitude": 37.422010799999995,
        "longitude": -122.08474779999999
      },
      "granularity": "ROOFTOP",
      "viewport": {
        "low": {
          "latitude": 37.420656719708511,
          "longitude": -122.08547523029148
        },
        "high": {
          "latitude": 37.4233546802915,
          "longitude": -122.0827772697085
        }
      },
      "formattedAddress": "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA",
    ...
}

Erstellen Sie Ihre Feldmasken anhand der Hierarchie der Antwortfelder im folgenden Format:

topLevelField[.secondLevelField][.thirdLevelField][...]

Wenn Sie beispielsweise nur das Feld placeId in der Antwort zurückgeben möchten, verwenden Sie die folgende Feldmaske:

curl -X GET -H 'Content-Type: application/json' \
-H 'X-Goog-FieldMask: results.placeId' \
-H "X-Goog-Api-Key: API_KEY" \
"https://"geocode.googleapis.com/v4beta/"geocode/address/1600+Amphitheatre+Parkway,+Mountain+View,+CA"

Die Antwort lautet jetzt:

{
  "results": [
    {
      "placeId": "ChIJF4Yf2Ry7j4AR__1AkytDyAE"
    }
  ]
}

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

-H 'X-Goog-FieldMask: results.viewport'

Die Antwort lautet jetzt:

{
  "results": [
    {
      "viewport": {
        "low": {
          "latitude": 37.420654569708496,
          "longitude": -122.08547618029148
        },
        "high": {
          "latitude": 37.423352530291496,
          "longitude": -122.0827782197085
        }
      }
    }
  ]
}

So gibst du beide zurück:

-H 'X-Goog-FieldMask: results.placeId,results.viewport'

Die Antwort lautet jetzt:

{
  "results": [
    {
      "placeId": "ChIJF4Yf2Ry7j4AR__1AkytDyAE",
      "viewport": {
        "low": {
          "latitude": 37.420654569708496,
          "longitude": -122.08547618029148
        },
        "high": {
          "latitude": 37.423352530291496,
          "longitude": -122.0827782197085
        }
      }
    }
  ]
}

gRPC-Feldmasken

Legen Sie für gRPC eine Variable mit der Feldmaske für die Antwort fest. Anschließend können Sie diese Variable an die Anfrage übergeben.

const (
  fieldMask = "results.placeId,results.viewport"
)

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.

Weitere Informationen zum Erstellen einer Feldmaske finden Sie unter field_mask.proto.