Query Autocomplete (heredado)

Desarrolladores del Espacio Económico Europeo (EEE)

La función Query Autocomplete (heredada) se puede usar para proporcionar una predicción de búsqueda para las búsquedas geográficas basadas en texto, ya que devuelve búsquedas sugeridas a medida que escribes.

Solicitudes de Query Autocomplete (heredada)

Query Autocomplete (heredada) forma parte de la API de Places (heredada) y comparte una clave de API y una cuota con la API de Places (heredada).

La función Query Autocomplete (heredada) te permite agregar predicciones de búsqueda geográfica sobre la marcha a tu aplicación. En lugar de buscar una ubicación específica, el usuario puede escribir una búsqueda categórica, como "pizza cerca de Nueva York", y el servicio responderá con una lista de búsquedas sugeridas que coincidan con la cadena. Como Query Autocomplete (heredado) puede coincidir con palabras completas y substrings, las aplicaciones pueden enviar búsquedas a medida que el usuario escribe para proporcionar predicciones en el momento.

Una solicitud de Query Autocomplete (heredada) es una URL HTTP con el siguiente formato:

https://maps.googleapis.com/maps/api/place/queryautocomplete/output?parameters

En el que output puede ser json o xml.

Se requieren ciertos parámetros para iniciar una solicitud de Query Autocomplete (heredada). Tal como es práctica estándar para las URLs, todos los parámetros se separan usando el signo et (&). A continuación, se enumeran los parámetros y sus valores posibles.

Parámetros obligatorios

  • entrada

    Es la cadena de texto en la que se realizará la búsqueda. El servicio Place Autocomplete devolverá posibles coincidencias en función de esta cadena y ordenará los resultados según la relevancia percibida.

Parámetros opcionales

  • idioma

    Es el idioma en el que se devolverán los resultados.

    • Consulta la lista de idiomas disponibles. Google suele actualizar los idiomas admitidos, por lo que es posible que esta lista no sea exhaustiva.
    • Si no se proporciona language, la API intenta usar el idioma preferido, como se especifica en el encabezado Accept-Language.
    • La API hace todo lo posible para proporcionar una dirección que sea legible tanto para el usuario como para los residentes locales. Para lograr ese objetivo, devuelve direcciones en el idioma local, transliteradas a una escritura legible por el usuario si es necesario, respetando el idioma preferido. Todas las demás direcciones se devuelven en el idioma preferido. Todos los componentes de la dirección se devuelven en el mismo idioma, que se elige a partir del primer componente.
    • Si no hay un nombre disponible en el idioma preferido, la API usa la coincidencia más cercana.
    • El idioma preferido tiene una pequeña influencia en el conjunto de resultados que la API elige mostrar y en el orden en que se muestran. El geocodificador interpreta las abreviaturas de manera diferente según el idioma, como las abreviaturas de los tipos de calles o los sinónimos que pueden ser válidos en un idioma, pero no en otro. Por ejemplo, utca y tér son sinónimos de calle en húngaro.
  • ubicación

    Define un punto, como coordenadas latitude,longitude, alrededor del cual se realizará la búsqueda. El servicio de Places usa la ubicación para personalizar la búsqueda y mostrar preferentemente los resultados en el área definida por location y radius. Es posible que también se muestren resultados externos al área definida.

    El parámetro location se puede anular si el query contiene una ubicación explícita, como Market in Barcelona. Usar comillas alrededor de la consulta también puede influir en el peso que se le da a location y radius.
  • offset

    Es la posición, en el término de entrada, del último carácter que el servicio usa para hacer coincidir las predicciones. Por ejemplo, si la entrada es Google y el desplazamiento es 3, el servicio coincidirá con Goo. La cadena determinada por el desplazamiento se compara solo con la primera palabra del término de entrada. Por ejemplo, si el término de entrada es Google abc y el desplazamiento es 3, el servicio intentará buscar coincidencias con Goo abc. Si no se proporciona ningún desplazamiento, el servicio usará el término completo. Por lo general, el desplazamiento se debe establecer en la posición del signo de intercalación de texto.

  • radio

    Define la distancia (en metros) dentro de la cual se deben mostrar los resultados de lugares. Puedes personalizar los resultados para un círculo específico si pasas los parámetros location y radius. Esto le indica al servicio Places que prefiera mostrar resultados dentro de ese círculo. Es posible que también se muestren resultados externos al área definida.

    El radio se limitará automáticamente a un valor máximo según el tipo de búsqueda y otros parámetros.

    • Autocompletar: 50,000 metros
    • Nearby Search:
      • con keyword o name: 50,000 metros
      • sin keyword ni name
        • Hasta 50,000 metros, ajustado de forma dinámica según la densidad del área, independientemente del parámetro rankby.
        • Cuando uses rankby=distance, no se aceptará el parámetro de radio y se generará un error INVALID_REQUEST.
    • Query Autocomplete: 50,000 metros
    • Text Search: 50,000 metros

Ejemplos de Query Autocomplete (heredado)

URL

https://maps.googleapis.com/maps/api/place/queryautocomplete/json
  ?input=pizza%20near%20par
  &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/place/queryautocomplete/json?input=pizza%20near%20par&key=YOUR_API_KEY'

Una solicitud de "Pizza cerca de Par", con resultados en francés:

URL

https://maps.googleapis.com/maps/api/place/queryautocomplete/json
  ?input=pizza%20near%20par
  &language=fr
  &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/place/queryautocomplete/json?input=pizza%20near%20par&language=fr&key=YOUR_API_KEY'

Ten en cuenta que, en estos ejemplos, deberás reemplazar la clave de API por tu propia clave.

Respuesta de Query Autocomplete (heredada)

Las respuestas de Query Autocomplete (heredada) se devuelven en el formato que se indica con la marca output en la ruta de la solicitud de URL. Los resultados que se muestran a continuación se devuelven para una consulta con los siguientes parámetros:

URL

https://maps.googleapis.com/maps/api/place/queryautocomplete/json
  ?input=pizza%20near%20par
  &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/place/queryautocomplete/json?input=pizza%20near%20par&key=YOUR_API_KEY'

JSON

{
  "predictions":
    [
      {
        "description": "pizza near Paris, France",
        "matched_substrings":
          [{ "length": 5, "offset": 0 }, { "length": 3, "offset": 11 }],
        "structured_formatting":
          {
            "main_text": "pizza",
            "main_text_matched_substrings": [{ "length": 5, "offset": 0 }],
            "secondary_text": "near Paris, France",
            "secondary_text_matched_substrings": [{ "length": 3, "offset": 5 }],
          },
        "terms":
          [
            { "offset": 0, "value": "pizza" },
            { "offset": 6, "value": "near" },
            { "offset": 11, "value": "Paris" },
            { "offset": 18, "value": "France" },
          ],
      },
      {
        "description": "pizza near Pari Chowk, NRI City, Omega II, Noida, Uttar Pradesh, India",
        "matched_substrings":
          [{ "length": 5, "offset": 0 }, { "length": 3, "offset": 11 }],
        "structured_formatting":
          {
            "main_text": "pizza",
            "main_text_matched_substrings": [{ "length": 5, "offset": 0 }],
            "secondary_text": "near Pari Chowk, NRI City, Omega II, Noida, Uttar Pradesh, India",
            "secondary_text_matched_substrings": [{ "length": 3, "offset": 5 }],
          },
        "terms":
          [
            { "offset": 0, "value": "pizza" },
            { "offset": 6, "value": "near" },
            { "offset": 11, "value": "Pari Chowk" },
            { "offset": 23, "value": "NRI City" },
            { "offset": 33, "value": "Omega II" },
            { "offset": 43, "value": "Noida" },
            { "offset": 50, "value": "Uttar Pradesh" },
            { "offset": 65, "value": "India" },
          ],
      },
      {
        "description": "pizza near Disneyland Park, Disneyland Drive, Anaheim, CA, USA",
        "matched_substrings":
          [{ "length": 5, "offset": 0 }, { "length": 3, "offset": 22 }],
        "structured_formatting":
          {
            "main_text": "pizza",
            "main_text_matched_substrings": [{ "length": 5, "offset": 0 }],
            "secondary_text": "near Disneyland Park, Disneyland Drive, Anaheim, CA, USA",
            "secondary_text_matched_substrings":
              [{ "length": 3, "offset": 16 }],
          },
        "terms":
          [
            { "offset": 0, "value": "pizza" },
            { "offset": 6, "value": "near" },
            { "offset": 11, "value": "Disneyland Park" },
            { "offset": 28, "value": "Disneyland Drive" },
            { "offset": 46, "value": "Anaheim" },
            { "offset": 55, "value": "CA" },
            { "offset": 59, "value": "USA" },
          ],
      },
      {
        "description": "pizza near Cathédrale Notre-Dame de Paris, Parvis Notre-Dame - place Jean-Paul-II, Paris, France",
        "matched_substrings":
          [{ "length": 5, "offset": 0 }, { "length": 3, "offset": 36 }],
        "structured_formatting":
          {
            "main_text": "pizza",
            "main_text_matched_substrings": [{ "length": 5, "offset": 0 }],
            "secondary_text": "near Cathédrale Notre-Dame de Paris, Parvis Notre-Dame - place Jean-Paul-II, Paris, France",
            "secondary_text_matched_substrings":
              [{ "length": 3, "offset": 30 }],
          },
        "terms":
          [
            { "offset": 0, "value": "pizza" },
            { "offset": 6, "value": "near" },
            { "offset": 11, "value": "Cathédrale Notre-Dame de Paris" },
            { "offset": 43, "value": "Parvis Notre-Dame - place Jean-Paul-II" },
            { "offset": 83, "value": "Paris" },
            { "offset": 90, "value": "France" },
          ],
      },
      {
        "description": "pizza near Paris Beauvais Airport, Route de l'Aéroport, Tillé, France",
        "matched_substrings":
          [{ "length": 5, "offset": 0 }, { "length": 3, "offset": 11 }],
        "structured_formatting":
          {
            "main_text": "pizza",
            "main_text_matched_substrings": [{ "length": 5, "offset": 0 }],
            "secondary_text": "near Paris Beauvais Airport, Route de l'Aéroport, Tillé, France",
            "secondary_text_matched_substrings": [{ "length": 3, "offset": 5 }],
          },
        "terms":
          [
            { "offset": 0, "value": "pizza" },
            { "offset": 6, "value": "near" },
            { "offset": 11, "value": "Paris Beauvais Airport" },
            { "offset": 35, "value": "Route de l'Aéroport" },
            { "offset": 56, "value": "Tillé" },
            { "offset": 63, "value": "France" },
          ],
      },
    ],
  "status": "OK",
}
    

XML

      
<AutocompletionResponse>
 <status>OK</status>
 <prediction>
  <description>pizza near Paris, France</description>
  <term>
   <value>pizza</value>
   <offset>0</offset>
  </term>
  <term>
   <value>near</value>
   <offset>6</offset>
  </term>
  <term>
   <value>Paris</value>
   <offset>11</offset>
  </term>
  <term>
   <value>France</value>
   <offset>18</offset>
  </term>
  <matched_substring>
   <offset>0</offset>
   <length>5</length>
  </matched_substring>
  <matched_substring>
   <offset>11</offset>
   <length>3</length>
  </matched_substring>
  <structured_formatting>
   <description>pizza</description>
   <subdescription>near Paris, France</subdescription>
   <description_matched_substring>
    <offset>0</offset>
    <length>5</length>
   </description_matched_substring>
   <subdescription_matched_substring>
    <offset>5</offset>
    <length>3</length>
   </subdescription_matched_substring>
  </structured_formatting>
 </prediction>
 <prediction>
  <description>pizza near Pari Chowk, NRI City, Omega II, Noida, Uttar Pradesh, India</description>
  <term>
   <value>pizza</value>
   <offset>0</offset>
  </term>
  <term>
   <value>near</value>
   <offset>6</offset>
  </term>
  <term>
   <value>Pari Chowk</value>
   <offset>11</offset>
  </term>
  <term>
   <value>NRI City</value>
   <offset>23</offset>
  </term>
  <term>
   <value>Omega II</value>
   <offset>33</offset>
  </term>
  <term>
   <value>Noida</value>
   <offset>43</offset>
  </term>
  <term>
   <value>Uttar Pradesh</value>
   <offset>50</offset>
  </term>
  <term>
   <value>India</value>
   <offset>65</offset>
  </term>
  <matched_substring>
   <offset>0</offset>
   <length>5</length>
  </matched_substring>
  <matched_substring>
   <offset>11</offset>
   <length>3</length>
  </matched_substring>
  <structured_formatting>
   <description>pizza</description>
   <subdescription>near Pari Chowk, NRI City, Omega II, Noida, Uttar Pradesh, India</subdescription>
   <description_matched_substring>
    <offset>0</offset>
    <length>5</length>
   </description_matched_substring>
   <subdescription_matched_substring>
    <offset>5</offset>
    <length>3</length>
   </subdescription_matched_substring>
  </structured_formatting>
 </prediction>
 <prediction>
  <description>pizza near Disneyland Park, Disneyland Drive, Anaheim, CA, USA</description>
  <term>
   <value>pizza</value>
   <offset>0</offset>
  </term>
  <term>
   <value>near</value>
   <offset>6</offset>
  </term>
  <term>
   <value>Disneyland Park</value>
   <offset>11</offset>
  </term>
  <term>
   <value>Disneyland Drive</value>
   <offset>28</offset>
  </term>
  <term>
   <value>Anaheim</value>
   <offset>46</offset>
  </term>
  <term>
   <value>CA</value>
   <offset>55</offset>
  </term>
  <term>
   <value>USA</value>
   <offset>59</offset>
  </term>
  <matched_substring>
   <offset>0</offset>
   <length>5</length>
  </matched_substring>
  <matched_substring>
   <offset>22</offset>
   <length>3</length>
  </matched_substring>
  <structured_formatting>
   <description>pizza</description>
   <subdescription>near Disneyland Park, Disneyland Drive, Anaheim, CA, USA</subdescription>
   <description_matched_substring>
    <offset>0</offset>
    <length>5</length>
   </description_matched_substring>
   <subdescription_matched_substring>
    <offset>16</offset>
    <length>3</length>
   </subdescription_matched_substring>
  </structured_formatting>
 </prediction>
 <prediction>
  <description>pizza near Cathédrale Notre-Dame de Paris, Parvis Notre-Dame - place Jean-Paul-II, Paris, France</description>
  <term>
   <value>pizza</value>
   <offset>0</offset>
  </term>
  <term>
   <value>near</value>
   <offset>6</offset>
  </term>
  <term>
   <value>Cathédrale Notre-Dame de Paris</value>
   <offset>11</offset>
  </term>
  <term>
   <value>Parvis Notre-Dame - place Jean-Paul-II</value>
   <offset>43</offset>
  </term>
  <term>
   <value>Paris</value>
   <offset>83</offset>
  </term>
  <term>
   <value>France</value>
   <offset>90</offset>
  </term>
  <matched_substring>
   <offset>0</offset>
   <length>5</length>
  </matched_substring>
  <matched_substring>
   <offset>36</offset>
   <length>3</length>
  </matched_substring>
  <structured_formatting>
   <description>pizza</description>
   <subdescription>near Cathédrale Notre-Dame de Paris, Parvis Notre-Dame - place Jean-Paul-II, Paris, France</subdescription>
   <description_matched_substring>
    <offset>0</offset>
    <length>5</length>
   </description_matched_substring>
   <subdescription_matched_substring>
    <offset>30</offset>
    <length>3</length>
   </subdescription_matched_substring>
  </structured_formatting>
 </prediction>
 <prediction>
  <description>pizza near Paris Beauvais Airport, Route de l'Aéroport, Tillé, France</description>
  <term>
   <value>pizza</value>
   <offset>0</offset>
  </term>
  <term>
   <value>near</value>
   <offset>6</offset>
  </term>
  <term>
   <value>Paris Beauvais Airport</value>
   <offset>11</offset>
  </term>
  <term>
   <value>Route de l'Aéroport</value>
   <offset>35</offset>
  </term>
  <term>
   <value>Tillé</value>
   <offset>56</offset>
  </term>
  <term>
   <value>France</value>
   <offset>63</offset>
  </term>
  <matched_substring>
   <offset>0</offset>
   <length>5</length>
  </matched_substring>
  <matched_substring>
   <offset>11</offset>
   <length>3</length>
  </matched_substring>
  <structured_formatting>
   <description>pizza</description>
   <subdescription>near Paris Beauvais Airport, Route de l'Aéroport, Tillé, France</subdescription>
   <description_matched_substring>
    <offset>0</offset>
    <length>5</length>
   </description_matched_substring>
   <subdescription_matched_substring>
    <offset>5</offset>
    <length>3</length>
   </subdescription_matched_substring>
  </structured_formatting>
 </prediction>
</AutocompletionResponse>
    
   

Cuando el servicio de Places devuelve resultados JSON de una búsqueda, los coloca dentro de un array predictions. Incluso si el servicio no devuelve resultados (por ejemplo, si el location es remoto), se devuelve un array predictions vacío. Las respuestas XML constan de cero o más elementos <prediction>.

PlacesQueryAutocompleteResponse

Campo Obligatorio Tipo Descripción
required Array<PlaceAutocompletePrediction>

Contiene un array de predicciones.

Consulta PlaceAutocompletePrediction para obtener más información.

required PlacesAutocompleteStatus

Contiene el estado de la solicitud y puede incluir información de depuración para ayudarte a identificar el motivo del error en la solicitud.

Consulta PlacesAutocompleteStatus para obtener más información.

opcional string

Cuando el servicio devuelve un código de estado que no es OK, puede haber un campo error_message adicional dentro del objeto de respuesta. Este campo contiene información más detallada sobre los motivos del código de estado determinado. Este campo no siempre se devuelve y su contenido está sujeto a cambios.

opcional Array<string>

Cuando el servicio devuelve información adicional sobre la especificación de la solicitud, puede haber un campo info_messages adicional dentro del objeto de respuesta. Este campo solo se devuelve para las solicitudes exitosas. Es posible que no siempre se devuelva, y su contenido está sujeto a cambios.

PlacesAutocompleteStatus

Códigos de estado que devuelve el servicio.

  • OK: Indica que la solicitud a la API se realizó correctamente.
  • ZERO_RESULTS indica que la búsqueda se realizó correctamente, pero no se devolvieron resultados. Esto puede ocurrir si se pasó un límite en una ubicación remota a la búsqueda.
  • INVALID_REQUEST: Indica que la solicitud a la API tiene un formato incorrecto, por lo general, debido a que falta el parámetro input.
  • OVER_QUERY_LIMIT que indique cualquiera de las siguientes opciones:
    • Superaste los límites de QPS.
    • No se habilitó la facturación en tu cuenta.
    • Se superó el crédito mensual de USD 200 o un límite de uso autoimpuesto.
    • La forma de pago proporcionada ya no es válida (por ejemplo, una tarjeta de crédito venció).
    Consulta las Preguntas frecuentes sobre Maps para obtener más información sobre cómo resolver este error.
  • REQUEST_DENIED: Indica que se rechazó tu solicitud, generalmente por los siguientes motivos:
    • Falta una clave de API en la solicitud.
    • El parámetro key no es válido.
  • UNKNOWN_ERROR: Indica un error desconocido.

Cuando el servicio de Places devuelve resultados JSON de una búsqueda, los coloca dentro de un array predictions. Incluso si el servicio no devuelve resultados (por ejemplo, si el location es remoto), devolverá un array predictions vacío. Las respuestas XML constan de cero o más elementos <prediction>.

PlaceAutocompletePrediction

Campo Obligatorio Tipo Descripción
required string

Contiene el nombre legible por humanos del resultado que se muestra. Para los resultados de establishment, suele ser el nombre de la empresa. Este contenido se debe leer tal como está. No analices la dirección con formato de manera programática.

required Array<PlaceAutocompleteMatchedSubstring>

Es una lista de subcadenas que describen la ubicación del término ingresado en el texto del resultado de la predicción, de modo que el término se pueda destacar si se desea.

Consulta PlaceAutocompleteMatchedSubstring para obtener más información.

required PlaceAutocompleteStructuredFormat

Proporciona texto con formato previo que se puede mostrar en tus resultados de autocompletar. Este contenido se debe leer tal como está. No analices la dirección con formato de manera programática.

Consulta PlaceAutocompleteStructuredFormat para obtener más información.

required Array<PlaceAutocompleteTerm>

Contiene un array de términos que identifican cada sección de la descripción que se muestra (una sección de la descripción suele terminar con una coma). Cada entrada del array tiene un campo value, que contiene el texto del término, y un campo offset, que define la posición de inicio de este término en la descripción, medida en caracteres Unicode.

Consulta PlaceAutocompleteTerm para obtener más información.

opcional integer

Es la distancia en línea recta en metros desde el origen. Este campo solo se devuelve para las solicitudes realizadas con una origin.

opcional string

un identificador textual que identifica de forma exclusiva un sitio. Para obtener información sobre el lugar, pasa este identificador en el campo placeId de una solicitud a la API de Places. Para obtener más información sobre los IDs de lugar, consulta la descripción general de los IDs de lugar.

opcional string

Consulta place_id.

opcional Array<string>

Contiene un array de tipos que se aplican a este lugar. Por ejemplo: [ "political", "locality" ] o [ "establishment", "geocode", "beauty_salon" ]. El array puede contener varios valores. Obtén más información sobre los tipos de lugares.

PlaceAutocompleteMatchedSubstring

Campo Obligatorio Tipo Descripción
required número

Es la longitud de la subcadena coincidente en el texto del resultado de la predicción.

required número

Es la ubicación de inicio de la subcadena coincidente en el texto del resultado de la predicción.

PlaceAutocompleteStructuredFormat

Campo Obligatorio Tipo Descripción
required string

Contiene el texto principal de una predicción, que suele ser el nombre del lugar.

required Array<PlaceAutocompleteMatchedSubstring>

Contiene un array con el valor offset y length. Estos describen la ubicación del término ingresado en el texto del resultado de la predicción, de modo que el término se pueda destacar si se desea.

Consulta PlaceAutocompleteMatchedSubstring para obtener más información.

opcional string

Contiene el texto secundario de una predicción, que suele ser la ubicación del lugar.

opcional Array<PlaceAutocompleteMatchedSubstring>

Contiene un array con el valor offset y length. Estos describen la ubicación del término ingresado en el texto del resultado de la predicción, de modo que el término se pueda destacar si se desea.

Consulta PlaceAutocompleteMatchedSubstring para obtener más información.

PlaceAutocompleteTerm

Campo Obligatorio Tipo Descripción
required número

Define la posición de inicio de este término en la descripción, medida en caracteres Unicode.

required string

Es el texto del término.