La función de autocompletar búsquedas (legado) se puede usar para proporcionar una predicción de búsqueda para búsquedas geográficas basadas en texto, ya que devuelve las búsquedas sugeridas a medida que escribes.
Solicitudes a Query Autocomplete (heredado)
Query Autocomplete (heredado) forma parte de la API de Places (heredada) y comparte una clave de API y una cuota con la API de Places (heredada).
Query Autocomplete (legacy) te permite agregar predicciones de búsquedas geográficas 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 sugerencias de búsquedas que coincidan con la cadena. Dado que Query Autocomplete (legacy) puede coincidir con palabras completas y subcadenas, las aplicaciones pueden enviar búsquedas a medida que el usuario escribe para proporcionar predicciones en el momento.
Una solicitud de Autocompletar búsquedas (legado) es una URL HTTP con el siguiente formato:
https://maps.googleapis.com/maps/api/place/queryautocomplete/output?parameters
donde output puede ser json o xml.
Se requieren ciertos parámetros para iniciar una solicitud de Autocompletar búsqueda (legacy).
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 posibles valores.
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 mostrarán los resultados.
- Consulta la lista de idiomas admitidos. Google actualiza con frecuencia 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 especificado en el encabezadoAccept-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 de calles en el idioma local, transliteradas a una escritura que el usuario pueda leer si es necesario, y observa 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 un nombre no está 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 devolver y en el orden en que se devuelven. 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 Places usa la ubicación para sesgar la búsqueda y mostrar preferentemente los resultados en el área definida porlocationyradius. Es posible que también se muestren resultados fuera del área definida.El parámetrolocationse puede anular siquerycontiene una ubicación explícita, comoMarket in Barcelona. Usar comillas alrededor de la búsqueda también puede influir en la importancia que se les otorga alocationyradius. -
offset
Posición, en el término de entrada, del último carácter que el servicio usa para correlacionar predicciones. Por ejemplo, si la entrada es
Googley el desplazamiento es 3, el servicio coincidirá conGoo. La cadena determinada por el desplazamiento solo se compara con la primera palabra del término de entrada. Por ejemplo, si el término de entrada esGoogle abcy el desplazamiento es 3, el servicio intentará hacer coincidir el término conGoo abc. Si no se proporciona ninguna compensación, el servicio usará todo el período. Por lo general, el desplazamiento debe establecerse en la posición del cursor de texto. -
radio
Define la distancia (en metros) dentro de la cual se deben devolver los resultados de lugares. Puedes personalizar los resultados para un círculo específico si pasas los parámetros
locationyradius. Si lo haces, se le indicará al servicio Places que prefiera mostrar resultados dentro de ese círculo, pero es posible que también se muestren resultados fuera del área definida.El radio se ajustará 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
keywordoname: 50,000 metros -
sin
keywordoname-
Hasta 50,000 metros, ajustado de forma dinámica según la densidad del área, independientemente del parámetro
rankby. -
Cuando se usa
rankby=distance, no se aceptará el parámetro de radio y se generará unINVALID_REQUEST.
-
Hasta 50,000 metros, ajustado de forma dinámica según la densidad del área, independientemente del parámetro
- Con
- Autocompletar búsquedas: 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 "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 deberás reemplazar la clave de API en estos ejemplos por tu propia clave.
Respuesta de Query Autocomplete (heredado)
Las respuestas de Autocompletar búsquedas (legado) se muestran en el formato indicado por la marca output dentro de la ruta de la solicitud de URL. Los resultados que se muestran a continuación corresponden a una búsqueda 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 Places devuelve resultados en formato JSON de una búsqueda, los coloca dentro de un array predictions. Incluso si el servicio no devuelve ningún resultado (por ejemplo, si el location es remoto), devuelve un array predictions vacío. Las respuestas XML constan de cero o más elementos <prediction>.
PlacesQueryAutocompleteResponse
| Campo | Obligatorio | Tipo | Descripción |
|---|---|---|---|
|
required | Arreglo<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 |
|
opcional | Arreglo<cadena> |
Cuando el servicio devuelve información adicional sobre la especificación de la solicitud, puede haber un campo |
PlacesAutocompleteStatus
Son los códigos de estado que muestra el servicio.
OK: Indica que la solicitud a la API se realizó correctamente.-
ZERO_RESULTSindica que la búsqueda se realizó correctamente, pero no devolvió ningún resultado. Esto puede ocurrir si se pasó una búsqueda con límites en una ubicación remota. -
INVALID_REQUEST, que indica que la solicitud a la API tenía un formato incorrecto, por lo general, debido a la falta del parámetroinput -
OVER_QUERY_LIMITque indica 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, si venció una tarjeta de crédito).
-
REQUEST_DENIEDindica que se rechazó tu solicitud, generalmente por los siguientes motivos:- Falta una clave de API en la solicitud.
- El parámetro
keyno 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), devuelve 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 del resultado devuelto. En el caso de los resultados de |
|
required | Arreglo<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 los resultados de autocompletado. 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 | Arreglo<PlaceAutocompleteTerm> |
Contiene un array de términos que identifican cada sección de la descripción devuelta (por lo general, una sección de la descripción termina con una coma). Cada entrada del array tiene un campo Consulta PlaceAutocompleteTerm para obtener más información. |
|
opcional | integer |
Es la distancia en línea recta desde el origen, expresada en metros. Este campo solo se devuelve para las solicitudes realizadas con un |
|
opcional | string |
un identificador textual que identifica de forma exclusiva un sitio. Para recuperar 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 | Arreglo<cadena> |
Contiene un array de tipos que se aplican a este lugar. Por ejemplo:
|
PlaceAutocompleteMatchedSubstring
| Campo | Obligatorio | Tipo | Descripción |
|---|---|---|---|
|
required | número |
Longitud de la subcadena coincidente en el texto del resultado de la predicción. |
|
required | número |
Ubicación inicial 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 | Arreglo<PlaceAutocompleteMatchedSubstring> |
Contiene un array con el valor 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 | Arreglo<PlaceAutocompleteMatchedSubstring> |
Contiene un array con el valor Consulta PlaceAutocompleteMatchedSubstring para obtener más información. |
PlaceAutocompleteTerm
| Campo | Obligatorio | Tipo | Descripción |
|---|---|---|---|
|
required | número |
Define la posición inicial de este término en la descripción, medida en caracteres Unicode. |
|
required | string |
Es el texto del término. |