Introducción
Text Search (nuevo) devuelve información sobre un conjunto de lugares en función de una cadena (por ejemplo, "pizza en Nueva York", "tiendas de zapatos cerca de Ottawa" o "Calle principal 123"). El servicio responde con una lista de lugares que coinciden con la cadena de texto y con cualquier personalización de ubicación que se haya establecido.
Además de los parámetros obligatorios, Text Search (nuevo) admite el perfeccionamiento de las consultas con parámetros opcionales para obtener mejores resultados.
El Explorador de APIs te permite realizar solicitudes en tiempo real para que puedas familiarizarte con la API y sus opciones:
Solicitudes de Text Search (nuevo)
Una solicitud de Text Search (nuevo) es una solicitud HTTP POST con el siguiente formato:
https://places.googleapis.com/v1/places:searchText
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 '{
"textQuery" : "Spicy Vegetarian Food in Sydney, Australia"
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel' \
'https://places.googleapis.com/v1/places:searchText'Respuestas de Text Search (nueva)
Text Search (nuevo) devuelve un objeto JSON como respuesta. En la respuesta, figura lo siguiente:
- El array
placescontiene todos los lugares que coinciden. - Cada lugar del array se representa con un objeto
Place. El objetoPlacecontiene información detallada sobre un solo lugar. - La FieldMask que se pasa en la solicitud especifica la lista de campos que se devuelven en el objeto
Place. - No se garantiza que la lista de lugares que se devuelve sea coherente para solicitudes idénticas.
El objeto JSON completo tiene el siguiente formato:
{
"places": [
{
object (Place)
}
]
}Parámetros obligatorios
-
FieldMask
Especifica la lista de campos que se mostrarán en la respuesta creando una máscara de campo de respuesta. Pasa la máscara de campo de respuesta al método con el parámetro de URL
$fieldsofields, o con el encabezado HTTPX-Goog-FieldMask. No hay una lista predeterminada de campos que se devuelven en la respuesta. Si omites la máscara de campo, el método muestra un error.El enmascaramiento de campos es una práctica de diseño recomendada para garantizar que no solicites datos innecesarios, lo que ayuda a evitar tiempos de procesamiento y cargos de facturación adicionales.
Especifica una lista separada por comas de los tipos de datos de lugar que deseas que se muestren. Por ejemplo, para recuperar el nombre visible y la dirección del lugar.
X-Goog-FieldMask: places.displayName,places.formattedAddress
Usa
*para recuperar todos los campos.X-Goog-FieldMask: *
Especifica uno o más de los siguientes campos:
Los siguientes campos activan el SKU Text Search Essentials ID Only:
places.attributions
places.id
places.consumerAlert
places.name*
nextPageToken
places.movedPlace
places.movedPlaceId* El campo
places.namecontiene el nombre de recurso del lugar expresado de la siguiente forma:places/PLACE_ID. Usaplaces.displayNameen el SKU Pro para acceder al nombre del lugar en forma de texto.Para obtener una lista completa de los campos y sus SKUs asociados, consulta Campos de datos de Place (nuevo).
Los siguientes campos activan el SKU de Text Search Pro:
places.accessibilityOptions
places.addressComponents
places.addressDescriptor*
places.adrFormatAddress
places.businessStatus
places.containingPlaces
places.displayName
places.formattedAddress
places.googleMapsLinks
places.googleMapsTypeLabel
places.googleMapsUri
places.iconBackgroundColor
places.iconMaskBaseUri
places.location
places.openingDate
places.photos
places.plusCode
places.postalAddress
places.primaryType
places.primaryTypeDisplayName
places.pureServiceAreaBusiness
places.shortFormattedAddress
places.searchUri
places.subDestinations
places.timeZone
places.types
places.utcOffsetMinutes
places.viewport
* Los descriptores de dirección están disponibles de forma general para los clientes de India y son experimentales en otros lugares.Para obtener una lista completa de los campos y sus SKUs asociados, consulta Campos de datos de Place (nuevo).
Los siguientes campos activan el SKU de Text Search Enterprise:
places.currentOpeningHours
places.currentSecondaryOpeningHours
places.internationalPhoneNumber
places.nationalPhoneNumber
places.priceLevel
places.priceRange
places.rating
places.regularOpeningHours
places.regularSecondaryOpeningHours
places.transitStation
places.userRatingCount
places.websiteUriPara obtener una lista completa de los campos y sus SKUs asociados, consulta Campos de datos de Place (nuevo).
Los siguientes campos activan el SKU Text Search Enterprise + Atmosphere:
places.allowsDogs
places.curbsidePickup
places.delivery
places.dineIn
places.editorialSummary
places.evChargeAmenitySummary
places.evChargeOptions
places.fuelOptions
places.generativeSummary
places.goodForChildren
places.goodForGroups
places.goodForWatchingSports
places.liveMusic
places.menuForChildren
places.neighborhoodSummary
places.parkingOptions
places.paymentOptions
places.outdoorSeating
places.reservable
places.restroom
places.reviews
places.reviewSummary
routingSummaries*
places.servesBeer
places.servesBreakfast
places.servesBrunch
places.servesCocktails
places.servesCoffee
places.servesDessert
places.servesDinner
places.servesLunch
places.servesVegetarianFood
places.servesWine
places.takeout
* Solo Text Search y Nearby SearchPara obtener una lista completa de los campos y sus SKUs asociados, consulta Campos de datos de Place (nuevo).
-
textQuery
Es la cadena de texto en la que se realizará la búsqueda. Por ejemplo, "restaurante", "calle principal 123" o "el mejor lugar para visitar en San Francisco". La API devuelve posibles coincidencias en función de esta cadena y ordena los resultados según la relevancia percibida.
La búsqueda de texto (nueva) no está diseñada para consultas ambiguas, incluidas las siguientes:
Tipo de consulta Ejemplo Demasiados conceptos o restricciones, como los nombres de varios lugares, rutas o ciudades en una sola búsqueda "Market Street San Francisco San Jose Airport" Elementos de la dirección postal que no se representan en Google Maps "C/O John Smith 123 Main Street"
"P.O. Box 13 San Francisco"Nombres de empresas, cadenas o categorías combinados con ubicaciones en las que estas entidades no están disponibles "Tesco cerca de Dallas, Texas" Consultas ambiguas con varias interpretaciones "Charger drop-off" Nombres históricos que ya no se usan "Middlesex, Reino Unido" Elementos o intención no geoespaciales "¿Cuántos barcos hay en el puerto de Ventura?" Nombres no oficiales o personalizados "The Jenga"
"The Helter Skelter"Coordenadas de latitud y longitud "37.422131,-122.084801"
Parámetros opcionales
-
includeFutureOpeningBusinesses
Si es
true, devuelve las empresas que se espera que abran en el futuro. La configuración predeterminada esfalse.
Para recuperar el estado de la empresa, incluyeplaces.businessStatusen la máscara de campo de tu solicitud. Para recuperar la fecha de apertura prevista de la empresa, incluyeplaces.openingDateen la máscara de campo de la solicitud. -
includedType
Sesga los resultados para que coincidan con el tipo especificado que se define en la tabla A. Solo puedes especificar un tipo. Por ejemplo:
"includedType":"bar""includedType":"pharmacy"
Text Search (nuevo) aplica el filtrado por tipo para ciertas consultas, según la aplicabilidad. Por ejemplo, es posible que el filtrado por tipo no se aplique a las búsquedas de direcciones específicas ("123 Main Street"), pero casi siempre se aplica a las búsquedas categóricas ("tiendas cercanas" o "centros comerciales").
Para aplicar el filtrado de tipos a todas las consultas, establece
strictTypeFilteringentrue. -
includePureServiceAreaBusinesses
Si se establece en
true, la respuesta incluye las empresas que visitan a los clientes o les hacen entregas de forma directa, pero que no tienen una ubicación física. Si se establece enfalse, la API solo devuelve las empresas con una ubicación física. languageCode
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
languageCode, la API se establece de forma predeterminada enen. Si especificas un código de idioma no válido, la API devolverá un errorINVALID_ARGUMENT. - La API hace todo lo posible para proporcionar una dirección que sea legible tanto para el usuario como para los 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 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 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.
locationBias
Especifica un área para buscar. Esta ubicación sirve como sesgo, lo que significa que se pueden mostrar resultados alrededor de la ubicación especificada, incluidos los resultados fuera del área especificada.
Puedes especificar
locationRestrictionolocationBias, pero no ambos. Piensa enlocationRestrictioncomo una especificación de la región en la que deben estar los resultados y enlocationBiascomo una especificación de la región en la que es probable que estén los resultados o cerca de ella, pero que pueden estar fuera del área.Especifica la región como un Viewport rectangular o como un círculo.
Un círculo se define por el punto central y el radio en metros. El radio debe estar entre 0.0 y 50000.0, inclusive. El radio predeterminado es 0.0. Por ejemplo:
"locationBias": { "circle": { "center": { "latitude": 37.7937, "longitude": -122.3965 }, "radius": 500.0 } }
Un rectángulo es un viewport de latitud y longitud, representado como dos puntos diagonalmente opuestos, uno bajo y otro alto. El punto bajo marca la esquina sudoeste del rectángulo, y el punto alto representa la esquina noreste del rectángulo.
Un viewport se considera una región cerrada, lo que significa que incluye su límite. Los límites de latitud deben estar comprendidos entre -90 y 90 grados, inclusive, y los límites de longitud deben estar comprendidos entre -180 y 180 grados, inclusive:
- Si
low=high, el viewport consta de ese único punto. - Si
low.longitude>high.longitude, el rango de longitud se invierte (el viewport cruza la línea de longitud de 180 grados). - Si
low.longitude= -180 grados yhigh.longitude= 180 grados, el viewport incluye todas las longitudes. - Si
low.longitude= 180 grados yhigh.longitude= -180 grados, el rango de longitud está vacío. - Si
low.latitude>high.latitude, el rango de latitud está vacío.
Se deben propagar los valores bajo y alto, 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 } } }
- Si
locationRestriction
Especifica un área en la que se buscarán solo búsquedas categóricas, que pueden devolver varios lugares (por ejemplo, "Restaurantes en Nueva York" o "Centros comerciales"). No se devuelven resultados fuera del área especificada.
Especifica la región como un Viewport rectangular. Para ver un ejemplo de cómo definir el viewport, consulta la descripción de
locationBias.Puedes especificar
locationRestrictionolocationBias, pero no ambos. Piensa enlocationRestrictioncomo una especificación de la región en la que deben estar los resultados y enlocationBiascomo una especificación de la región en la que es probable que estén los resultados o cerca de ella, pero que pueden estar fuera del área.evOptions
Especifica los parámetros para identificar los conectores de carga de vehículos eléctricos (VE) disponibles y las tarifas de carga.
connectorTypes
Filtra por el tipo de conector de carga de VE disponible en un lugar. Se filtrará un lugar que no admita ninguno de los tipos de conector. Entre los tipos de conectores de carga de VE compatibles, se incluyen los cargadores combinados (CA y CC), los cargadores de Tesla, los cargadores que cumplen con el estándar GB/T (para la carga rápida de VE en China) y los cargadores de tomacorriente. Para obtener más información, consulta la documentación de referencia.
- Para filtrar los resultados de un conector compatible específico, establece
connectorTypesen ese valor. Por ejemplo, para encontrar conectores J1772 de tipo 1, establececonnectorTypesenEV_CONNECTOR_TYPE_J1772. - Para filtrar los resultados de los conectores no admitidos, establece
connectorTypesenEV_CONNECTOR_TYPE_OTHER. - Para filtrar los resultados de cualquier tipo de conector que sea un tomacorriente, establece
connectorTypesenEV_CONNECTOR_TYPE_UNSPECIFIED_WALL_OUTLET. - Para filtrar los resultados de cualquier tipo de conector, establece
connectorTypesenEV_CONNECTOR_TYPE_UNSPECIFIEDo no establezcas un valor paraconnectorTypes.
- Para filtrar los resultados de un conector compatible específico, establece
minimumChargingRateKw
Filtra los lugares por la velocidad de carga mínima de VE en kilovatios (kW). Se filtran todos los lugares con una velocidad de carga inferior a la velocidad de carga mínima. Por ejemplo, para encontrar cargadores de VE con velocidades de carga de, al menos, 10 kW, puedes establecer este parámetro en "10".
minRating
Restringe los resultados solo a aquellos cuya calificación promedio de los usuarios sea mayor o igual que este límite. Los valores deben estar entre 0.0 y 5.0 (inclusive) en incrementos de 0.5. Por ejemplo: 0, 0.5, 1.0, …, 5.0 inclusive. Los valores se redondean al 0.5 más cercano. Por ejemplo, un valor de 0.6 elimina todos los resultados con una calificación inferior a 1.0.
openNow
Si es
true, solo se devuelven los lugares que están abiertos en el momento en que se envía la consulta. Si esfalse, se devuelven todas las empresas, independientemente de su estado de apertura. Los lugares que no especifican los horarios de atención en la base de datos de Google Places se muestran si estableces este parámetro enfalse.pageSize
Especifica la cantidad de resultados, entre 1 y 20, que se mostrarán en cada página. Por ejemplo, si estableces un valor de
pageSizede 5, se mostrarán hasta 5 resultados en la primera página. Si la consulta puede mostrar más resultados, la respuesta incluye unnextPageTokenque puedes pasar en una solicitud posterior para acceder a la página siguiente.Este campo reemplaza al campo
maxResultCount, que dejó de estar disponible. Si especificaspageSizeymaxResultCount, la API usapageSizey, además, ignoramaxResultCount.pageToken
Especifica el
nextPageTokendel cuerpo de la respuesta de la página anterior.-
priceLevels
Restringe la búsqueda a lugares que estén marcados con determinados niveles de precios. De forma predeterminada, se seleccionan todos los niveles de precios.
Se pueden esperar niveles de precios para los lugares de los siguientes tipos:
Los lugares de tipos no admitidos no se incluirán en la respuesta si se especifica
priceLevels.Especifica un array de uno o más valores definidos por
PriceLevel.Por ejemplo:
"priceLevels":["PRICE_LEVEL_INEXPENSIVE", "PRICE_LEVEL_MODERATE"]
rankPreference
Especifica cómo se clasifican los resultados en la respuesta según el tipo de consulta:
- Para una búsqueda categórica, como "Restaurantes en la ciudad de Nueva York",
RELEVANCE(clasifica los resultados por relevancia de la búsqueda) es la opción predeterminada. Puedes establecerrankPreferenceenRELEVANCEoDISTANCE(clasifica los resultados por distancia). - Para una búsqueda no categórica, como "Mountain View, CA", te recomendamos que dejes
rankPreferencesin configurar.
- Para una búsqueda categórica, como "Restaurantes en la ciudad de Nueva York",
regionCode
Es el código de región que se usa para dar formato a la respuesta, especificado como un valor de código CLDR de dos caracteres. Este parámetro también puede tener un efecto de sesgo en los resultados de la búsqueda. No hay un valor predeterminado.
Si el nombre del país del campo
formattedAddressen la respuesta coincide con elregionCode, se omite el código de país deformattedAddress. Este parámetro no tiene efecto enadrFormatAddress, que siempre incluye el nombre del país cuando está disponible, ni enshortFormattedAddress, que nunca lo incluye.La mayoría de los códigos CLDR 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 "Reino Unido de Gran Bretaña e Irlanda del Norte"). El parámetro puede afectar los resultados según la legislación aplicable.
strictTypeFiltering
Se usa con el parámetro
includedType. Cuando se establece entrue, solo se devuelven los lugares que coinciden con los tipos especificados porincludedType. Cuando es falso (el valor predeterminado), la respuesta puede contener lugares que no coinciden con los tipos especificados.
Ejemplos de Text Search (nuevo)
Cómo buscar un lugar con una cadena de consulta
En el siguiente ejemplo, se muestra una solicitud de Text Search (New) para "Spicy Vegetarian Food in Sydney, Australia":
curl -X POST -d '{
"textQuery" : "Spicy Vegetarian Food in Sydney, Australia"
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress' \
'https://places.googleapis.com/v1/places:searchText'
Ten en cuenta que el encabezado X-Goog-FieldMask especifica que la
respuesta
contiene los siguientes campos de datos: places.displayName,places.formattedAddress.
La respuesta tiene el siguiente formato:
{ "places": [ { "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia", "displayName": { "text": "Mother Chu's Vegetarian Kitchen", "languageCode": "en" } }, { "formattedAddress": "175 First Ave, Five Dock NSW 2046, Australia", "displayName": { "text": "Veggo Sizzle - Vegan & Vegetarian Restaurant, Five Dock, Sydney", "languageCode": "en" } }, ... ] }
Agrega más tipos de datos a la máscara de campo para devolver información adicional.
Por ejemplo, agrega places.types,places.websiteUri para incluir el tipo de restaurante y la dirección web en la respuesta:
curl -X POST -d '{
"textQuery" : "Spicy Vegetarian Food in Sydney, Australia"
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.types,places.websiteUri' \
'https://places.googleapis.com/v1/places:searchText'La respuesta ahora tiene el siguiente formato:
{ "places": [ { "types": [ "vegetarian_restaurant", "vegan_restaurant", "chinese_restaurant", "restaurant", "food", "point_of_interest", "establishment" ], "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia", "websiteUri": "http://www.motherchusvegetarian.com.au/", "displayName": { "text": "Mother Chu's Vegetarian Kitchen", "languageCode": "en" } }, { "types": [ "vegan_restaurant", "thai_restaurant", "vegetarian_restaurant", "indian_restaurant", "italian_restaurant", "american_restaurant", "restaurant", "food", "point_of_interest", "establishment" ], "formattedAddress": "175 First Ave, Five Dock NSW 2046, Australia", "websiteUri": "http://www.veggosizzle.com.au/", "displayName": { "text": "Veggo Sizzle - Vegan & Vegetarian Restaurant, Five Dock, Sydney", "languageCode": "en" } }, ... ] }
Cómo filtrar lugares por nivel de precios
Usa la opción priceLevel para filtrar los resultados y mostrar los restaurantes definidos como económicos o moderadamente costosos:
curl -X POST -d '{
"textQuery" : "Spicy Vegetarian Food in Sydney, Australia",
"priceLevels":["PRICE_LEVEL_INEXPENSIVE", "PRICE_LEVEL_MODERATE"]
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel' \
'https://places.googleapis.com/v1/places:searchText'En este ejemplo, también se usa el encabezado X-Goog-FieldMask para agregar el campo de datos places.priceLevel a la respuesta, de modo que tenga el siguiente formato:
{ "places": [ { "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia", "priceLevel": "PRICE_LEVEL_MODERATE", "displayName": { "text": "Mother Chu's Vegetarian Kitchen", "languageCode": "en" } }, { "formattedAddress": "115 King St, Newtown NSW 2042, Australia", "priceLevel": "PRICE_LEVEL_MODERATE", "displayName": { "text": "Green Mushroom", "languageCode": "en" } }, ... ] }
Agrega opciones adicionales para definir mejor tu búsqueda, como includedType,
minRating, rankPreference, openNow
y otros parámetros que se describen en
Parámetros opcionales.
Restringe la búsqueda a un área específica
Usa locationRestriction o locationBias,
pero no ambos, para restringir una búsqueda a un área. 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 pueden estar fuera del área.
Restringe el área con locationRestriction
Usa el parámetro locationRestriction para restringir los resultados de la consulta a una
región específica. En el cuerpo de la solicitud, especifica los valores de latitud y longitud de low y high que definen el límite de la región.
En el siguiente ejemplo, se muestra una solicitud de Text Search (nueva) para "comida vegetariana" en la ciudad de Nueva York. Esta solicitud solo devuelve los primeros 10 resultados de los lugares que están abiertos.
curl -X POST -d '{
"textQuery" : "vegetarian food",
"pageSize" : "10",
"locationRestriction": {
"rectangle": {
"low": {
"latitude": 40.477398,
"longitude": -74.259087
},
"high": {
"latitude": 40.91618,
"longitude": -73.70018
}
}
}
}' \
-H 'Content-Type: application/json' \
-H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.id,places.formattedAddress' \
'https://places.googleapis.com/v1/places:searchText'
Cómo sesgar los resultados a un área con locationBias
En el siguiente ejemplo, se muestra una solicitud de Text Search (nuevo) para "comida vegetariana" con una preferencia de ubicación de 500 metros de un punto en el centro de San Francisco. Esta solicitud solo devuelve los primeros 10 resultados de los lugares que están abiertos.
curl -X POST -d '{
"textQuery" : "vegetarian food",
"openNow": true,
"pageSize": 10,
"locationBias": {
"circle": {
"center": {"latitude": 37.7937, "longitude": -122.3965},
"radius": 500.0
}
},
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress' \
'https://places.googleapis.com/v1/places:searchText'
Cómo buscar cargadores de VE con una velocidad de carga mínima
Usa minimumChargingRateKw y connectorTypes para buscar lugares con cargadores disponibles que sean compatibles con tu VE.
En el siguiente ejemplo, se muestra una solicitud de conectores de carga de VE de tipo 1 de Tesla y J1772 con una tasa de carga mínima de 10 kW en Mountain View, California. Solo se devuelven cuatro resultados.
curl -X POST -d '{
"textQuery": "EV Charging Station Mountain View",
"pageSize": 4,
"evOptions": {
"minimumChargingRateKw": 10,
"connectorTypes": ["EV_CONNECTOR_TYPE_J1772","EV_CONNECTOR_TYPE_TESLA"]
}
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H "X-Goog-FieldMask: places.displayName,places.evChargeOptions" \
'https://places.googleapis.com/v1/places:searchText'
La solicitud devuelve la siguiente respuesta:
{ "places": [ { "displayName": { "text": "EVgo Charging Station", "languageCode": "en" }, "evChargeOptions": { "connectorCount": 16, "connectorAggregation": [ { "type": "EV_CONNECTOR_TYPE_CHADEMO", "maxChargeRateKw": 100, "count": 8, "availableCount": 5, "outOfServiceCount": 0, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" }, { "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1", "maxChargeRateKw": 100, "count": 2, "availableCount": 2, "outOfServiceCount": 0, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" }, ... ] } }, { "displayName": { "text": "EVgo Charging Station", "languageCode": "en" }, "evChargeOptions": { "connectorCount": 6, "connectorAggregation": [ { "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1", "maxChargeRateKw": 100, "count": 4, "availableCount": 3, "outOfServiceCount": 0, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" }, { "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1", "maxChargeRateKw": 350, "count": 2, "availableCount": 0, "outOfServiceCount": 2, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" } ] } }, ... ] }
Cómo buscar empresas de servicio en el área
Usa el parámetro includePureServiceAreaBusinesses para buscar
empresas sin una dirección de servicio física (por ejemplo, un servicio de limpieza
móvil o un food truck).
En el siguiente ejemplo, se muestra una solicitud de plomeros en San Francisco:
curl -X POST -d '{
"textQuery" : "plumber San Francisco",
"includePureServiceAreaBusinesses": true
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress' \
'https://places.googleapis.com/v1/places:searchText'
En la respuesta, las empresas sin una dirección de servicio física no incluyen
el campo formattedAddress:
{ "places": [ { "formattedAddress": "3450 Sacramento St #204, San Francisco, CA 94118, USA", "displayName": { "text": "Advanced Plumbing & Drain", "languageCode": "en" } }, { "displayName": { "text": "Starboy Plumbing Inc.", "languageCode": "en" } }, ... ] }
Especifica una cantidad de resultados para mostrar por página
Usa el parámetro pageSize para especificar la cantidad de resultados que se mostrarán por página. El parámetro nextPageToken en el cuerpo de la respuesta
proporciona un token que se puede usar en llamadas posteriores para acceder a la siguiente página de
resultados.
En el siguiente ejemplo, se muestra una solicitud de "pizza en Nueva York" limitada a 5 resultados por página:
curl -X POST -d '{
"textQuery": "pizza in New York",
"pageSize": 5
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H "X-Goog-FieldMask: places.id,nextPageToken" \
'https://places.googleapis.com/v1/places:searchText'
{ "places": [ { "id": "ChIJifIePKtZwokRVZ-UdRGkZzs" }, { "id": "ChIJPxPd_P1YwokRfzLhSiACEoU" }, ... ], "nextPageToken": "AeCrKXsZWzNVbPzO-MRWPu52jWO_Xx8aKwOQ69_Je3DxRpfdjClq8Ekwh3UcF2h2Jn75kL6PtWLGV4ecQri-GEUKN_OFpJkdVc-JL4Q" }
Para acceder a la siguiente página de resultados, usa pageToken para pasar el
nextPageToken en el cuerpo de la solicitud:
curl -X POST -d '{
"textQuery": "pizza in New York",
"pageSize": 5,
"pageToken": "AeCrKXsZWzNVbPzO-MRWPu52jWO_Xx8aKwOQ69_Je3DxRpfdjClq8Ekwh3UcF2h2Jn75kL6PtWLGV4ecQri-GEUKN_OFpJkdVc-JL4Q"
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H "X-Goog-FieldMask: places.id,nextPageToken" \
'https://places.googleapis.com/v1/places:searchText'
{ "places": [ { "id": "ChIJL-LN1N1ZwokR8K2jACu6Ydw" }, { "id": "ChIJjaD94kFZwokR-20CXqlpy_4" }, ... ], "nextPageToken": "AeCrKXvPd6uUy-oj96W2OaqEe2pUD8QTxOM8-sKfUcFsC9t2Wey5qivrKGoGSxcZnyc7RPmaFfAktslrKbUh31ZDTkL0upRmaxA7c_c" }
Obtén descriptores de direcciones
Los descriptores de direcciones proporcionan información relacional sobre la ubicación de un lugar, incluidos los puntos de referencia cercanos y las áreas que lo contienen.
En el siguiente ejemplo, se muestra una solicitud de Text Search (nuevo) para lugares cercanos a un centro comercial en San José. En este ejemplo, incluyes addressDescriptors en la máscara de campo:
curl -X POST -d '{
"textQuery": "clothes",
"maxResultCount": 5,
"locationBias": {
"circle": {
"center": {
"latitude": 37.321328,
"longitude": -121.946275
}
}
},
"rankPreference":"RANK_PREFERENCE_UNSPECIFIED"
}' \
-H 'Content-Type: application/json' \
-H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.displayName,places.addressDescriptor" \
https://places.googleapis.com/v1/places:searchText
La respuesta incluye el lugar especificado en la solicitud, una lista de puntos de referencia cercanos y su distancia con respecto al lugar, y una lista de áreas y su relación de contención con el lugar:
{ "places": [ { "displayName": { "text": "Urban Outfitters", "languageCode": "en" }, "addressDescriptor": { "landmarks": [ { "name": "places/ChIJVVVVUB7Lj4ARXyb4HFVDV8s", "placeId": "ChIJVVVVUB7Lj4ARXyb4HFVDV8s", "displayName": { "text": "Westfield Valley Fair", "languageCode": "en" }, "types": [ "clothing_store", "department_store", "establishment", "food", "movie_theater", "point_of_interest", "restaurant", "shoe_store", "shopping_mall", "store" ], "spatialRelationship": "WITHIN", "straightLineDistanceMeters": 133.72855 }, { "name": "places/ChIJ62_oCR7Lj4AR_MGWkSPotD4", "placeId": "ChIJ62_oCR7Lj4AR_MGWkSPotD4", "displayName": { "text": "Nordstrom", "languageCode": "en" }, "types": [ "clothing_store", "department_store", "establishment", "point_of_interest", "shoe_store", "store" ], "straightLineDistanceMeters": 250.99161 }, ... ], "areas": [ { "name": "places/ChIJb3F-EB7Lj4ARnHApQ_Hu1gI", "placeId": "ChIJb3F-EB7Lj4ARnHApQ_Hu1gI", "displayName": { "text": "Westfield Valley Fair", "languageCode": "en" }, "containment": "WITHIN" }, { "name": "places/ChIJXYuykB_Lj4AR1Ot8nU5q26Q", "placeId": "ChIJXYuykB_Lj4AR1Ot8nU5q26Q", "displayName": { "text": "Valley Fair", "languageCode": "en" }, "containment": "WITHIN" }, ... ] } }, ... ] }
Cómo encontrar empresas que abrirán en el futuro
En el siguiente ejemplo, se muestra una solicitud de Text Search (nueva) para empresas que abrirán en el futuro en New Meadows, Idaho:
curl -X POST \
-H "Content-Type: application/json" \
-H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.id,places.displayName,places.businessStatus,places.openingDate" \
-d '{
"textQuery": "Roberts Greenhouse and Tree Farm",
"includeFutureOpeningBusinesses": true,
"maxResultCount": 20,
"locationBias": {
"circle": {
"center": {"latitude": 44.9755100, "longitude": -116.2842180},
"radius": 20
}
}
}' \
"https://places.googleapis.com/v1/places:searchText"
La respuesta incluye las empresas que abrirán en el futuro, junto con su estado y la fecha de apertura prevista:
{ "places": [ { "id": "ChIJp1-VoKWJplQRMz8g-7Wa3Do", "businessStatus": "FUTURE_OPENING", "displayName": { "text": "Roberts Greenhouse and Tree Farm", "languageCode": "en" }, "openingDate": { "year": 2026, "month": 4, "day": 15 } } ] }
Cómo obtener información sobre las estaciones de transporte público
Puedes usar Text Search (nuevo) para encontrar estaciones de transporte público. El cuerpo de la respuesta incluye información sobre la estación, como el nombre, las empresas de transporte público afiliadas y las líneas de transporte público que prestan servicio en la estación. Además, la respuesta incluye un ícono de vehículo y colores que puedes usar para mostrar la información de la estación de transporte público.
En el siguiente ejemplo, se muestra una solicitud para "Grand Central Station":
curl -X POST \
-H "Content-Type: application/json" \
-H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.id,places.displayName,places.transitStation" \
-d '{
"textQuery": "Grand Central Station"
}' \
"https://places.googleapis.com/v1/places:searchText"
El cuerpo de la respuesta incluye información sobre cada estación dentro del radio, las líneas que pasan por la estación, las alertas emitidas por las empresas de transporte público en esa parada y la información de salida:
{ "places": [ { "id": "ChIJhRwB-yFawokRi0AhGH87UTc", "displayName": { "text": "Grand Central", "languageCode": "en" }, "transitStation": { "displayName": { "text": "Grand Central", "languageCode": "en" }, "agencies": [ { "displayName": { "text": "Metro-North Railroad", "languageCode": "en" }, "url": "http://www.mta.info/mnr", "lines": [ { "id": "ChIJOXpD29y2wokRryDO0CocwK0", "vehicleType": "HEAVY_RAIL", "displayName": { "text": "Harlem", "languageCode": "en" }, "textColor": "#FFFFFF", "backgroundColor": "#0061AA", "vehicleIcon": { "url": "https://maps.gstatic.com/mapfiles/transit/iw2/svg/rail2.svg" }, "alerts": [ { "effect": "OTHER", "texts": [ { "headline": { "text": "Information", "languageCode": "en" }, "summary": { "text": "Temporary platforms are in place at Botanical Garden, Williams Bridge, and Woodlawn for northbound travel. Build in extra travel time to reach the platform.", "languageCode": "en" }, "fullDescription": { "text": "What's Happening? We are renovating some Harlem Line stations in the Bronx. Learn more about the project here.", "languageCode": "en" } } ], "detailsUrls": [ { "url": "https://new.mta.info/" } ], "cause": "OTHER_CAUSE", "startTime": "2026-04-16T04:00:00Z", "endTime": "2026-12-01T04:45:00Z", "attribution": { "link": { "text": "new.mta.info", "url": "https://new.mta.info/" } }, "createTime": "2026-05-15T22:39:30Z", "severityLevel": "INFO" } ] }, ... ] }, ... ] "stops": [ { "id": "ChIJOfdrigFZwokRJPllLwfPrJY", "location": { "latitude": 40.752823, "longitude": -73.977195999999992 }, "wheelchairAccessibleEntrance": true } ], "departureBoards": [ { "displayType": "TIME_CENTRIC", "rows": [ { "departures": [ { "timedDeparture": { "scheduledTime": "2026-05-15T22:42:00Z", "timingType": "SCHEDULED", "predictedTime": "2026-05-15T22:42:00Z", "updateTime": "2026-05-15T22:38:50Z" }, "originallyScheduledStopId": "ChIJOfdrigFZwokRJPllLwfPrJY", "lineId": "ChIJAfBuQhwg6IkRYnFpClHxFrM" } ] }, ... ] } ] } }, { "id": "ChIJ_4EAi-pZwokRWe5T1JmmWmc", "displayName": { "text": "Grand Central Station", "languageCode": "en" } } ] }
Obtén entradas y puntos de navegación
Puedes solicitar entradas y puntos de navegación para un destino. Las entradas definen los puntos de entrada y salida de un lugar (por ejemplo, las diferentes puertas de un aeropuerto o centro comercial). Los puntos de navegación definen ubicaciones al costado de la ruta donde debe finalizar la navegación, lo que es útil para dirigir a los usuarios al lado correcto de la ruta o a un punto de llegada específico.
Los puntos de navegación devuelven un objeto navigationPointToken. Puedes pasar este token al SDK de Navigation (disponible para Android o iOS) o a la API de Routes para guiar a los conductores a esa ubicación específica. Para obtener más información, consulta Tokens de puntos de navegación.
En el siguiente ejemplo, se muestra una solicitud de Text Search (nueva) para "Aeropuerto Internacional de San Francisco" que incluye entrances y navigationPoints en la máscara de campo:
curl -X POST \
-H "Content-Type: application/json" \
-H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.id,places.displayName,places.entrances,places.navigationPoints" \
-d '{
"textQuery": "San Francisco International Airport",
"pageSize": 1
}' \
"https://places.googleapis.com/v1/places:searchText"
La respuesta incluye las entradas y los puntos de navegación del lugar:
{ "places": [ { "id": "ChIJVVVVVYx3j4ARP-3NGldc8qQ", "displayName": { "text": "San Francisco International Airport", "languageCode": "en" }, "entrances": [ { "location": { "latitude": 37.6172154, "longitude": -122.3839724 } }, { "location": { "latitude": 37.6174073, "longitude": -122.384196 } }, ... ], "navigationPoints": [ { "navigationPointToken": "ChIJoioBjMLOQkAR0A3yH_eYXsA...", "displayName": { "text": "International Terminal Departures Level", "languageCode": "en" }, "location": { "latitude": 37.6153121, "longitude": -122.3900833 }, "travelModes": ["WALK"] }, { "navigationPointToken": "ChIJy5JKws_OQkAROx0jNN2YXsA...", "displayName": { "text": "Domestic Garage - SFO Short Term Parking", "languageCode": "en" }, "location": { "latitude": 37.6157153, "longitude": -122.3885012 }, "travelModes": ["DRIVE", "WALK"], "usages": ["PARKING"] }, ... ] } ] }
Pruébalo
El Explorador de APIs te permite realizar solicitudes de ejemplo para que puedas familiarizarte con la API y sus opciones.
Selecciona el ícono de API api en el lado derecho de la página.
De manera opcional, edita los parámetros de la solicitud.
Selecciona el botón Ejecutar. En el cuadro de diálogo, elige la cuenta que deseas usar para realizar la solicitud.
En el panel del Explorador de APIs, selecciona el ícono de pantalla completa fullscreen para expandir la ventana del Explorador de APIs.