Elige los campos que quieres mostrar

Desarrolladores del Espacio Económico Europeo (EEE)

Cuando realizas una solicitud de geocodificación, puedes usar una máscara de campo para especificar la lista de campos que se deben devolver en la respuesta. Las máscaras de campo ayudan con la latencia de respuesta, ya que garantizan que no solicites datos innecesarios.

En el caso de los métodos de geocodificación básicos (Geocodifica una dirección, Geocodifica una ubicación y Geocodificación de lugares), se devuelven todos los campos del objeto de respuesta de forma predeterminada, a diferencia de Busca destinos, en el que se requiere especificar una máscara de campo. Si bien no se requiere una máscara de campo para los métodos básicos, te recomendamos que uses una para reducir la latencia de la respuesta.

Define una máscara de campo de respuesta

La máscara de campo de respuesta es una lista separada por comas de rutas de acceso sin espacios, en la que cada ruta de acceso especifica un campo único en el objeto de respuesta. La ruta de acceso comienza desde el campo de respuesta de nivel superior y usa una ruta de acceso separada por puntos a un campo especificado.

Pasa la máscara de campo de respuesta a una solicitud con el parámetro de URL $fields o fields, o con el encabezado HTTP o gRPC X-Goog-FieldMask.

Ejemplos de máscaras de campo

A continuación, se muestra la respuesta completa de una solicitud de geocodificación directa:

{
  "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",
    ...
}

Crea tus máscaras de campo con la jerarquía de los campos de respuesta, en el formato siguiente:

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

Máscaras de campo de Search for destinations

Cuando llames a SearchDestinations, especifica los atributos de destino exactos que necesitas, como los detalles del lugar principal, las entradas, los puntos de navegación, los contornos de los edificios (displayPolygon) y los puntos de referencia:

curl -X POST -d '{"addressQuery": {"addressQuery": "1600 Amphitheatre Pkwy, Mountain View, CA"}}' \
-H 'Content-Type: application/json' \
-H 'X-Goog-FieldMask: destinations.primary.displayName,destinations.primary.displayPolygon,destinations.entrances,destinations.navigationPoints,destinations.landmarks' \
-H "X-Goog-Api-Key: API_KEY" \
https://geocode.googleapis.com/v4/geocode/destinations

Máscaras de campo de geocodificación principales

Por ejemplo, para devolver solo el campo placeId en una respuesta GeocodeAddress, usa una máscara de campo de:

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/v4/geocode/address/1600+Amphitheatre+Parkway,+Mountain+View,+CA

La respuesta ahora es la siguiente:

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

Para devolver el campo viewport, tu máscara de campo es la siguiente:

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

La respuesta ahora es la siguiente:

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

Para devolver ambos, haz lo siguiente:

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

La respuesta ahora es la siguiente:

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

Máscaras de campo de gRPC

Para gRPC, establece una variable que contenga la máscara de campo de respuesta. Luego, puedes pasar esa variable a la solicitud.

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

Consideraciones sobre la ruta de acceso del campo

Incluye solo los campos que necesitas en la respuesta para que se devuelvan solo los campos que necesitas:

  • Disminuye los tiempos de procesamiento, por lo que los resultados se devuelven con una latencia más baja.
  • Garantiza un rendimiento de latencia estable. Si seleccionas todos los campos o si seleccionas todos los campos en el nivel superior, es posible que experimentes una degradación del rendimiento cuando se agreguen campos nuevos y, luego, se incluyan automáticamente en tu respuesta.
  • Genera un tamaño de respuesta más pequeño, lo que se traduce en una mayor capacidad de procesamiento de la red.

Para obtener más detalles sobre cómo construir una máscara de campo, consulta field_mask.proto.