Autocompletar (nuevo)

Selecciona la plataforma: Android iOS JavaScript Servicio web

El servicio Autocomplete (nuevo) es un servicio web que muestra predicciones de lugares y consultas en respuesta a una solicitud HTTP. En la solicitud, especifica una cadena de búsqueda de texto y límites geográficos que controlen el área de búsqueda.

El servicio Autocomplete (nuevo) puede buscar coincidencias para palabras completas y subcadenas de la entrada para resolver nombres de lugares, direcciones y Plus Codes. Así, las aplicaciones pueden enviar consultas a medida que el usuario escribe para proporcionar predicciones de lugares y consultas en el momento.

La respuesta de la API de Autocomplete (nueva) puede contener dos tipos de predicciones:

  • Predicciones de lugares: Son lugares, como empresas, direcciones y lugares de interés, según la cadena de texto de entrada y el área de búsqueda especificadas. Las predicciones de lugares se muestran de forma predeterminada.
  • Predicciones de búsqueda: Cadenas de búsqueda que coinciden con la cadena de texto de entrada y el área de búsqueda. Las predicciones de consulta no se muestran de forma predeterminada. Usa el parámetro de solicitud includeQueryPredictions para agregar predicciones de consultas a la respuesta.

Por ejemplo, llamas a la API con una cadena que contiene una entrada parcial del usuario, "Sicilian piz", con el área de búsqueda limitada a San Francisco, California. Luego, la respuesta contiene una lista de predicciones de lugares que coinciden con la cadena de búsqueda y el área de búsqueda, como el restaurante llamado "Sicilian Pizza Kitchen", junto con detalles sobre el lugar.

Las predicciones de lugares que se devuelven están diseñadas para mostrarse al usuario y ayudarlo a seleccionar el lugar deseado. Puedes realizar una solicitud de Place Details (New) para obtener más información sobre cualquiera de las predicciones de lugares que se muestran.

La respuesta también puede contener una lista de predicciones de búsqueda que coincidan con la cadena de búsqueda y el área de búsqueda, como "Pizza y pasta siciliana". Cada predicción de consulta en la respuesta incluye el campo text que contiene una cadena de búsqueda de texto recomendada. Usa esa cadena como entrada para Text Search (nueva) para realizar una búsqueda más detallada.

El Explorador de APIs te permite realizar solicitudes en vivo para que puedas familiarizarte con la API y las opciones de la API:

Pruébalo

Solicitudes de Autocomplete (nuevo)

Una solicitud de Autocomplete (nueva) es una solicitud HTTP POST a una URL con el siguiente formato:

https://places.googleapis.com/v1/places:autocomplete

Pasa todos los parámetros en el cuerpo de la solicitud JSON o en los encabezados como parte de la solicitud POST. Por ejemplo:

curl -X POST -d '{
  "input": "pizza",
  "locationBias": {
    "circle": {
      "center": {
        "latitude": 37.7937,
        "longitude": -122.3965
      },
      "radius": 500.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
https://places.googleapis.com/v1/places:autocomplete

Acerca de la respuesta

Autocomplete (nuevo) muestra un objeto JSON como respuesta. En la respuesta, figura lo siguiente:

  • El array suggestions contiene todos los lugares y las búsquedas previstos en orden según su relevancia percibida. Cada lugar se representa con un campo placePrediction y cada consulta se representa con un campo queryPrediction.
  • Un campo placePrediction contiene información detallada sobre una sola predicción de lugar, incluido el ID del lugar y la descripción de texto.
  • Un campo queryPrediction contiene información detallada sobre una sola predicción de consulta.

El objeto JSON completo tiene el siguiente formato:

{
  "suggestions": [
    {
      "placePrediction": {
        "place": "places/ChIJ5YQQf1GHhYARPKG7WLIaOko",
        "placeId": "ChIJ5YQQf1GHhYARPKG7WLIaOko",
        "text": {
          "text": "Amoeba Music, Haight Street, San Francisco, CA, USA",
          "matches": [
            {
              "endOffset": 6
            }]
        },
      ...
    },
    {
      "queryPrediction": {
        "text": {
          "text": "Amoeba Music",
          "matches": [
            {
              "endOffset": 6
            }]
        },
        ...
    }
  ...]
}

Parámetros obligatorios

  • entrada

    Es la cadena de texto en la que se realiza la búsqueda. Especifica palabras completas y subcadenas, nombres de lugares, direcciones y Plus Codes. El servicio de Autocomplete (nuevo) muestra posibles coincidencias en función de esta cadena y ordena los resultados según la relevancia percibida.

Parámetros opcionales

  • FieldMask

    Para especificar la lista de campos que se mostrarán en la respuesta, crea una máscara de campo de respuesta. Pasa la máscara de campo de respuesta al método mediante el encabezado HTTP X-Goog-FieldMask.

    Especifica una lista de campos de sugerencias separados por comas que se mostrarán. Por ejemplo, para recuperar el suggestions.placePrediction.place y el suggestions.placePrediction.text de la sugerencia.

      X-Goog-FieldMask: places.displayName,places.formattedAddress

    Usa * para recuperar todos los campos.

      X-Goog-FieldMask: *
  • includedPrimaryTypes

    Un lugar solo puede tener un tipo principal único de los tipos que se indican en la Tabla A o la Tabla B. Por ejemplo, el tipo principal podría ser "mexican_restaurant" o "steak_house".

    De forma predeterminada, la API muestra todos los lugares según el parámetro input, independientemente del valor de tipo principal asociado con el lugar. Restringe los resultados para que sean de un tipo primario o uno principal determinado pasando el parámetro includedPrimaryTypes.

    Usa este parámetro para especificar hasta cinco valores de tipo de la Tabla A o la Tabla B. Un lugar debe coincidir con uno de los valores de tipo principal especificados para incluirse en la respuesta.

    Este parámetro también puede incluir, en cambio, uno de (regions) o (cities). La colección de tipos (regions) filtra áreas o divisiones, como vecindarios y códigos postales. El conjunto de tipos (cities) filtra los lugares que Google identifica como ciudad.

    La solicitud se rechaza con un error INVALID_REQUEST en los siguientes casos:

    • Se especifican más de cinco tipos.
    • Se especifica cualquier tipo además de (cities) o (regions).
    • Se especifican todos los tipos no reconocidos.
  • includePureServiceAreaBusinesses

    Si se establece en true, la respuesta incluye empresas que visitan a los clientes o les entregan sus productos directamente, pero que no tienen una ubicación física. Si se establece en false, la API solo muestra empresas con una ubicación física.

  • includeQueryPredictions

    Si es true, la respuesta incluye predicciones de lugares y de consultas. El valor predeterminado es false, lo que significa que la respuesta solo incluye predicciones de lugares.

  • includedRegionCodes

    Incluye solo los resultados de la lista de regiones especificadas, que se especifican como un array de hasta 15 valores de dos caracteres de ccTLD ("dominio de nivel superior"). Si se omite, no se aplican restricciones a la respuesta. Por ejemplo, para limitar las regiones a Alemania y Francia, haz lo siguiente:

        "includedRegionCodes": ["de", "fr"]

    Si especificas locationRestriction y includedRegionCodes, los resultados se encuentran en el área de intersección de los dos parámetros de configuración.

  • inputOffset

    Es el desplazamiento de caracteres Unicode basado en cero que indica la posición del cursor en input. La posición del cursor puede influir en las predicciones que se muestran. Si está vacío, el valor predeterminado es la longitud de input.

  • languageCode

    El idioma preferido en el que se mostrarán los resultados. Los resultados pueden estar en idiomas mixtos si el idioma que se usa en input es diferente del valor que especifica languageCode o si el lugar que se muestra no tiene una traducción del idioma local a languageCode.

    • Debes usar los códigos de idioma IETF BCP-47 para especificar el idioma preferido.
    • Si no se proporciona languageCode, la API usa el valor especificado en el encabezado Accept-Language. Si no se especifica ninguno, el valor predeterminado es en. Si especificas un código de idioma no válido, la API muestra un error INVALID_ARGUMENT.
    • El idioma preferido tiene poco efecto en el conjunto de resultados que la API selecciona para mostrar y el orden en el que se muestran. Esto también afecta la capacidad de la API para corregir errores ortográficos.
    • La API intenta proporcionar una dirección que sea legible para el usuario y la población local, y, al mismo tiempo, reflejar la entrada del usuario. Las predicciones de lugares tienen un formato diferente según la entrada del usuario en cada solicitud.
      • Primero, se eligen los términos coincidentes en el parámetro input, con nombres alineados con la preferencia de idioma que indica el parámetro languageCode cuando está disponible. De lo contrario, se usan los nombres que mejor coinciden con la entrada del usuario.
      • Las direcciones tienen el formato del idioma local, en una secuencia de comandos legible para el usuario, cuando es posible, solo después de que se hayan elegido los términos coincidentes para que coincidan con los términos del parámetro input.
      • Todas las demás direcciones se muestran en el idioma preferido, después de que se hayan elegido los términos coincidentes para que coincidan con los términos del parámetro input. Si un nombre no está disponible en el idioma preferido, la API usa la coincidencia más cercana.
  • locationBias o locationRestriction

    Puedes especificar locationBias o locationRestriction, pero no ambos, para definir el área de búsqueda. Piensa en locationRestriction como la especificación de la región en la que deben estar los resultados y en locationBias como la especificación de la región a la que deben estar cerca los resultados, pero que puede estar fuera del área.

    • locationBias

      Especifica un área para buscar. Esta ubicación sirve como una personalización, lo que significa que se pueden mostrar resultados alrededor de la ubicación especificada, incluso resultados fuera del área especificada.

    • locationRestriction

      Especifica un área de búsqueda. No se muestran resultados fuera del área especificada.

    Especifica la región locationBias o locationRestriction como un viewport rectangular o un círculo.

    • Un círculo se define por el punto central y el radio en metros. El radio debe ser de 0.0 a 50,000.0, inclusive. El valor predeterminado es 0.0. Para locationRestriction, debes establecer el radio en un valor mayor que 0.0. De lo contrario, la solicitud no muestra resultados.

      Por ejemplo:

      "locationBias": {
        "circle": {
          "center": {
            "latitude": 37.7937,
            "longitude": -122.3965
          },
          "radius": 500.0
        }
      }
    • Un rectángulo es un viewport de latitud-longitud, representado como dos low diagonalmente opuestos y puntos altos. Un viewport se considera una región cerrada, lo que significa que incluye su límite. Los límites de latitud deben oscilar entre -90 y 90 grados inclusive, y los límites de longitud deben oscilar entre -180 y 180 grados inclusive:

      • Si low = high, la ventana de visualización consta de ese único punto.
      • Si low.longitude > high.longitude, el rango de longitud se invierte (la ventana de visualización cruza la línea de longitud de 180 grados).
      • Si low.longitude = -180 grados y high.longitude = 180 grados, la ventana de visualización incluye todas las longitudes.
      • Si low.longitude = 180 grados y high.longitude = -180 grados, el rango de longitud está vacío.

      Se deben propagar low y high, y el cuadro representado no puede estar vacío. Un viewport vacío genera un error.

      Por ejemplo, este viewport encierra por completo la ciudad de Nueva York:

      "locationBias": {
        "rectangle": {
          "low": {
            "latitude": 40.477398,
            "longitude": -74.259087
          },
          "high": {
            "latitude": 40.91618,
            "longitude": -73.70018
          }
        }
      }
  • origin

    Es el punto de origen desde el que se calcula la distancia en línea recta hasta el destino (se muestra como distanceMeters). Si se omite este valor, no se mostrará la distancia en línea recta. Se deben especificar como coordenadas de latitud y longitud:

    "origin": {
        "latitude": 40.477398,
        "longitude": -74.259087
    }
  • regionCode

    Es el código de región que se usa para dar formato a la respuesta, especificado como un valor de dos caracteres de ccTLD ("dominio de nivel superior"). La mayoría de los códigos ccTLD son idénticos a los códigos ISO 3166-1, con algunas excepciones notables. Por ejemplo, el ccTLD del Reino Unido es “uk” (.co.uk), mientras que su código ISO 3166-1 es “gb” (técnicamente para la entidad de “Reino Unido de Gran Bretaña e Irlanda del Norte”).

    Si especificas un código de región no válido, la API mostrará un error INVALID_ARGUMENT. El parámetro puede afectar los resultados según la ley aplicable.

  • sessionToken

    Los tokens de sesión son cadenas generadas por el usuario que hacen un seguimiento de las llamadas a Autocomplete (nuevo) como “sesiones”. Autocomplete (nuevo) usa tokens de sesión para agrupar las fases de consulta y selección de la búsqueda con autocompletado de un usuario en una sesión discreta para realizar la facturación correspondiente. Para obtener más información, consulta Tokens de sesión.

Ejemplos de Autocomplete (nuevo)

Cómo restringir la búsqueda a un área con locationRestriction

locationRestriction especifica el área en la que se realizará la búsqueda. No se muestran resultados fuera del área especificada. En el siguiente ejemplo, se usa locationRestriction para limitar la solicitud a un círculo de 5,000 metros de radio centrado en San Francisco:

curl -X POST -d '{
  "input": "Art museum",
  "locationRestriction": {
    "circle": {
      "center": {
        "latitude": 37.7749,
        "longitude": -122.4194
      },
      "radius": 5000.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
https://places.googleapis.com/v1/places:autocomplete

Todos los resultados dentro de las áreas especificadas se encuentran en el array suggestions:

  {
    "suggestions": [
      {
        "placePrediction": {
          "place": "places/ChIJkQQVTZqAhYARHxPt2iJkm1Q",
          "placeId": "ChIJkQQVTZqAhYARHxPt2iJkm1Q",
          "text": {
            "text": "Asian Art Museum, Larkin Street, San Francisco, CA, USA",
            "matches": [
              {
                "startOffset": 6,
                "endOffset": 16
              }
            ]
          },
          "structuredFormat": {
            "mainText": {
              "text": "Asian Art Museum",
              "matches": [
                {
                  "startOffset": 6,
                  "endOffset": 16
                }
              ]
            },
            "secondaryText": {
              "text": "Larkin Street, San Francisco, CA, USA"
            }
          },
          "types": [
            "establishment",
            "museum",
            "point_of_interest"
          ]
        }
      },
      {
        "placePrediction": {
          "place": "places/ChIJI7NivpmAhYARSuRPlbbn_2w",
          "placeId": "ChIJI7NivpmAhYARSuRPlbbn_2w",
          "text": {
            "text": "de Young Museum, Hagiwara Tea Garden Drive, San Francisco, CA, USA",
            "matches": [
              {
                "endOffset": 15
              }
            ]
          },
          "structuredFormat": {
            "mainText": {
              "text": "de Young Museum",
              "matches": [
                {
                  "endOffset": 15
                }
              ]
            },
            "secondaryText": {
              "text": "Hagiwara Tea Garden Drive, San Francisco, CA, USA"
            }
          },
          "types": [
            "establishment",
            "point_of_interest",
            "tourist_attraction",
            "museum"
          ]
        }
      },
      /.../
    ]
  }

También puedes usar locationRestriction para restringir las búsquedas a un viewport rectangular. En el siguiente ejemplo, se limita la solicitud al centro de San Francisco:

  curl -X POST -d '{
    "input": "Art museum",
    "locationRestriction": {
      "rectangle": {
        "low": {
          "latitude": 37.7751,
          "longitude": -122.4219
        },
        "high": {
          "latitude": 37.7955,
          "longitude": -122.3937
        }
      }
    }
  }' \
  -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
  https://places.googleapis.com/v1/places:autocomplete

Los resultados se contienen en el array suggestions:

  {
    "suggestions": [
      {
        "placePrediction": {
          "place": "places/ChIJkQQVTZqAhYARHxPt2iJkm1Q",
          "placeId": "ChIJkQQVTZqAhYARHxPt2iJkm1Q",
          "text": {
            "text": "Asian Art Museum, Larkin Street, San Francisco, CA, USA",
            "matches": [
              {
                "startOffset": 6,
                "endOffset": 16
              }
            ]
          },
          "structuredFormat": {
            "mainText": {
              "text": "Asian Art Museum",
              "matches": [
                {
                  "startOffset": 6,
                  "endOffset": 16
                }
              ]
            },
            "secondaryText": {
              "text": "Larkin Street, San Francisco, CA, USA"
            }
          },
          "types": [
            "point_of_interest",
            "museum",
            "establishment"
          ]
        }
      },
      {
        "placePrediction": {
          "place": "places/ChIJyQNK-4SAhYARO2DZaJleWRc",
          "placeId": "ChIJyQNK-4SAhYARO2DZaJleWRc",
          "text": {
            "text": "International Art Museum of America, Market Street, San Francisco, CA, USA",
            "matches": [
              {
                "startOffset": 14,
                "endOffset": 24
              }
            ]
          },
          "structuredFormat": {
            "mainText": {
              "text": "International Art Museum of America",
              "matches": [
                {
                  "startOffset": 14,
                  "endOffset": 24
                }
              ]
            },
            "secondaryText": {
              "text": "Market Street, San Francisco, CA, USA"
            }
          },
          "types": [
            "museum",
            "point_of_interest",
            "tourist_attraction",
            "art_gallery",
            "establishment"
          ]
        }
      }
    ]
  }

Cómo personalizar la búsqueda en un área con locationBias

Con locationBias, la ubicación funciona como un sesgo, lo que significa que se pueden mostrar resultados alrededor de la ubicación especificada, incluidos los resultados fuera del área especificada. En el siguiente ejemplo, sesgas la solicitud al centro de San Francisco:

curl -X POST -d '{
  "input": "Amoeba",
  "locationBias": {
    "circle": {
      "center": {
        "latitude": 37.7749,
        "longitude": -122.4194
      },
      "radius": 5000.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
https://places.googleapis.com/v1/places:autocomplete

Los resultados ahora contienen muchos más elementos, incluidos los que se encuentran fuera del radio de 5,000 metros:

{
  "suggestions": [
    {
      "placePrediction": {
        "place": "places/ChIJ5YQQf1GHhYARPKG7WLIaOko",
        "placeId": "ChIJ5YQQf1GHhYARPKG7WLIaOko",
        "text": {
          "text": "Amoeba Music, Haight Street, San Francisco, CA, USA",
          "matches": [
            {
              "endOffset": 6
            }
          ]
        },
        "structuredFormat": {
          "mainText": {
            "text": "Amoeba Music",
            "matches": [
              {
                "endOffset": 6
              }
            ]
          },
          "secondaryText": {
            "text": "Haight Street, San Francisco, CA, USA"
          }
        },
        "types": [
          "electronics_store",
          "point_of_interest",
          "store",
          "establishment",
          "home_goods_store"
        ]
      }
    },
    {
      "placePrediction": {
        "place": "places/ChIJr7uwwy58hYARBY-e7-QVwqw",
        "placeId": "ChIJr7uwwy58hYARBY-e7-QVwqw",
        "text": {
          "text": "Amoeba Music, Telegraph Avenue, Berkeley, CA, USA",
          "matches": [
            {
              "endOffset": 6
            }
          ]
        },
        "structuredFormat": {
          "mainText": {
            "text": "Amoeba Music",
            "matches": [
              {
                "endOffset": 6
              }
            ]
          },
          "secondaryText": {
            "text": "Telegraph Avenue, Berkeley, CA, USA"
          }
        },
        "types": [
          "electronics_store",
          "point_of_interest",
          "establishment",
          "home_goods_store",
          "store"
        ]
      }
    },
    ...
  ]
}

También puedes usar locationBias para restringir las búsquedas a un viewport rectangular. En el siguiente ejemplo, se limita la solicitud al centro de San Francisco:

  curl -X POST -d '{
    "input": "Amoeba",
    "locationBias": {
      "rectangle": {
        "low": {
          "latitude": 37.7751,
          "longitude": -122.4219
        },
        "high": {
          "latitude": 37.7955,
          "longitude": -122.3937
        }
      }
    }
  }' \
  -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
  https://places.googleapis.com/v1/places:autocomplete

Aunque los resultados de la búsqueda dentro del viewport rectangular aparecen en la respuesta, algunos resultados están fuera de los límites definidos debido a la personalización. Los resultados también se incluyen en el array suggestions:

  {
    "suggestions": [
      {
        "placePrediction": {
          "place": "places/ChIJ5YQQf1GHhYARPKG7WLIaOko",
          "placeId": "ChIJ5YQQf1GHhYARPKG7WLIaOko",
          "text": {
            "text": "Amoeba Music, Haight Street, San Francisco, CA, USA",
            "matches": [
              {
                "endOffset": 6
              }
            ]
          },
          "structuredFormat": {
            "mainText": {
              "text": "Amoeba Music",
              "matches": [
                {
                  "endOffset": 6
                }
              ]
            },
            "secondaryText": {
              "text": "Haight Street, San Francisco, CA, USA"
            }
          },
          "types": [
            "point_of_interest",
            "store",
            "establishment"
          ]
        }
      },
      {
        "placePrediction": {
          "place": "places/ChIJr7uwwy58hYARBY-e7-QVwqw",
          "placeId": "ChIJr7uwwy58hYARBY-e7-QVwqw",
          "text": {
            "text": "Amoeba Music, Telegraph Avenue, Berkeley, CA, USA",
            "matches": [
              {
                "endOffset": 6
              }
            ]
          },
          "structuredFormat": {
            "mainText": {
              "text": "Amoeba Music",
              "matches": [
                {
                  "endOffset": 6
                }
              ]
            },
            "secondaryText": {
              "text": "Telegraph Avenue, Berkeley, CA, USA"
            }
          },
          "types": [
            "point_of_interest",
            "store",
            "establishment"
          ]
        }
      },
      {
        "placePrediction": {
          "place": "places/ChIJRdmfADq_woARYaVhnfQSUTI",
          "placeId": "ChIJRdmfADq_woARYaVhnfQSUTI",
          "text": {
            "text": "Amoeba Music, Hollywood Boulevard, Los Angeles, CA, USA",
            "matches": [
              {
                "endOffset": 6
              }
            ]
          },
          "structuredFormat": {
            "mainText": {
              "text": "Amoeba Music",
              "matches": [
                {
                  "endOffset": 6
                }
              ]
            },
            "secondaryText": {
              "text": "Hollywood Boulevard, Los Angeles, CA, USA"
            }
          },
          "types": [
            "point_of_interest",
            "store",
            "establishment"
          ]
        }
      },
    /.../
    ]
  }

Usa includedPrimaryTypes

Usa el parámetro includedPrimaryTypes para especificar hasta cinco valores de tipo de la Tabla A, la Tabla B, solo (regions) o solo (cities). Un lugar debe coincidir con uno de los valores de tipo principal especificado que se incluirán en la respuesta.

En el siguiente ejemplo, especificas una cadena input de "Fútbol" y usas el parámetro includedPrimaryTypes para restringir los resultados a los establecimientos de tipo "sporting_goods_store":

curl -X POST -d '{
  "input": "Soccer",
  "includedPrimaryTypes": ["sporting_goods_store"],
  "locationBias": {
    "circle": {
      "center": {
        "latitude": 37.7749,
        "longitude": -122.4194
      },
      "radius": 500.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
https://places.googleapis.com/v1/places:autocomplete

Si omites el parámetro includedPrimaryTypes, los resultados pueden incluir establecimientos de un tipo que no deseas, como "athletic_field".

Solicita predicciones de consultas

Las predicciones de consulta no se muestran de forma predeterminada. Usa el parámetro de solicitud includeQueryPredictions para agregar predicciones de consultas a la respuesta. Por ejemplo:

curl -X POST -d '{
  "input": "Amoeba",
  "includeQueryPredictions": true,
  "locationBias": {
    "circle": {
      "center": {
        "latitude": 37.7749,
        "longitude": -122.4194
      },
      "radius": 5000.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
https://places.googleapis.com/v1/places:autocomplete

El array suggestions ahora contiene predicciones de lugares y predicciones de consultas, como se muestra más arriba en Acerca de la respuesta. Cada predicción de consulta incluye el campo text que contiene una cadena de búsqueda de texto recomendada. Puedes realizar una solicitud de Text Search (New) para obtener más información sobre cualquiera de las predicciones de búsqueda que se muestran.

Usar origen

En este ejemplo, incluye origin en la solicitud como coordenadas de latitud y longitud. Cuando incluyes origin, la API incluye el campo distanceMeters en la respuesta, que contiene la distancia en línea recta desde origin hasta el destino. En este ejemplo, se establece el origen en el centro de San Francisco:

curl -X POST -d '{
  "input": "Amoeba",
  "origin": {
    "latitude": 37.7749,
    "longitude": -122.4194
  },
  "locationRestriction": {
    "circle": {
      "center": {
        "latitude": 37.7749,
        "longitude": -122.4194
      },
      "radius": 5000.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
https://places.googleapis.com/v1/places:autocomplete

La respuesta ahora incluye distanceMeters:

{
  "suggestions": [
    {
      "placePrediction": {
        "place": "places/ChIJ5YQQf1GHhYARPKG7WLIaOko",
        "placeId": "ChIJ5YQQf1GHhYARPKG7WLIaOko",
        "text": {
          "text": "Amoeba Music, Haight Street, San Francisco, CA, USA",
          "matches": [
            {
              "endOffset": 6
            }
          ]
        },
        "structuredFormat": {
          "mainText": {
            "text": "Amoeba Music",
            "matches": [
              {
                "endOffset": 6
              }
            ]
          },
          "secondaryText": {
            "text": "Haight Street, San Francisco, CA, USA"
          }
        },
        "types": [
          "home_goods_store",
          "establishment",
          "point_of_interest",
          "store",
          "electronics_store"
        ],
        "distanceMeters": 3012
      }
    }
  ]
}

Pruébalo

El Explorador de APIs te permite realizar solicitudes de muestra para que puedas familiarizarte con la API y sus opciones.

  1. Selecciona el ícono de la API, Expande el Explorador de API., en el lado derecho de la página.
  2. De manera opcional, expande Mostrar parámetros estándar y establece el parámetro fields en la máscara de campo.
  3. De manera opcional, edita el Cuerpo de la solicitud.
  4. Selecciona el botón Ejecutar. En la ventana emergente, elige la cuenta que deseas usar para realizar la solicitud.
  5. En el panel del Explorador de API, selecciona el ícono de expansión, Expande el Explorador de API., para expandir la ventana del Explorador de API.