Introdução
A Pesquisa de texto (novo) retorna informações sobre um conjunto de lugares com base em uma string (por exemplo, "pizza em São Paulo", "loja de sapatos perto do Rio de Janeiro" ou "Avenida Brasil, 123"). O serviço responde com uma lista de lugares correspondentes à string de texto e a todos os direcionamentos de localização definidos.
Além dos parâmetros obrigatórios, a Pesquisa de texto (novo) permite refinar consultas usando parâmetros opcionais para ter resultados melhores.
Com o APIs Explorer, você pode fazer solicitações em tempo real para se familiarizar com a API e as opções dela:
Solicitações da Pesquisa de texto (novo)
Uma solicitação de Pesquisa de texto (nova) é uma solicitação HTTP POST do seguinte formato:
https://places.googleapis.com/v1/places:searchText
Transmita todos os parâmetros no corpo da solicitação JSON ou nos cabeçalhos como parte da solicitação POST. Exemplo:
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'
Respostas da Pesquisa de texto (novo)
A Pesquisa de texto (nova) retorna um objeto JSON como resposta. Na resposta:
- A matriz
places
contém todos os lugares correspondentes. - Cada lugar na matriz é representado por um objeto
Place
. O objetoPlace
contém informações detalhadas sobre um único lugar. - A FieldMask transmitida na solicitação especifica a lista de campos retornados no objeto
Place
.
O objeto JSON completo tem este formato:
{ "places": [ { object (Place) } ] }
Parâmetros obrigatórios
-
FieldMask
Especifique a lista de campos a serem retornados na resposta criando uma máscara de campo de resposta. Transmita a máscara de campo de resposta para o método usando o parâmetro de URL
$fields
oufields
, ou usando o cabeçalho HTTPX-Goog-FieldMask
. Não há uma lista padrão de campos retornados na resposta. Se você omitir a máscara de campo, o método vai retornar um erro.A máscara de campo é uma boa prática de design para garantir que você não solicite dados desnecessários, o que ajuda a evitar tempo de processamento e cobranças desnecessárias.
Especifique uma lista separada por vírgulas de tipos de dados de lugar a serem retornados. Por exemplo, para recuperar o nome de exibição e o endereço do lugar.
X-Goog-FieldMask: places.displayName,places.formattedAddress
Use
*
para recuperar todos os campos.X-Goog-FieldMask: *
Especifique um ou mais dos seguintes campos:
Os campos a seguir acionam a SKU Text Search Essentials ID Only:
places.attributions
places.id
places.name
*
nextPageToken
* O campo
places.name
contém o nome do recurso do lugar no formato:places/PLACE_ID
. Useplaces.displayName
na SKU Pro para acessar o nome de texto do lugar.Os campos a seguir acionam o SKU Text Search Pro:
places.accessibilityOptions
places.addressComponents
places.addressDescriptor
*
places.adrFormatAddress
places.businessStatus
places.containingPlaces
places.displayName
places.formattedAddress
places.googleMapsLinks
**
places.googleMapsUri
places.iconBackgroundColor
places.iconMaskBaseUri
places.location
places.photos
places.plusCode
places.postalAddress
places.primaryType
places.primaryTypeDisplayName
places.pureServiceAreaBusiness
places.shortFormattedAddress
places.subDestinations
places.types
places.utcOffsetMinutes
places.viewport
* Os descritores de endereço estão disponíveis para clientes na Índia e são experimentais em outros lugares.
** O campoplaces.googleMapsLinks
está na fase de pré-lançamento e não há cobrança, ou seja, o faturamento é de US $0, para uso durante o pré-lançamento.Os campos a seguir acionam a SKU Text Search Enterprise:
places.currentOpeningHours
places.currentSecondaryOpeningHours
places.internationalPhoneNumber
places.nationalPhoneNumber
places.priceLevel
places.priceRange
places.rating
places.regularOpeningHours
places.regularSecondaryOpeningHours
places.userRatingCount
places.websiteUri
Os campos a seguir acionam a 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
places.routingSummaries
*
places.servesBeer
places.servesBreakfast
places.servesBrunch
places.servesCocktails
places.servesCoffee
places.servesDessert
places.servesDinner
places.servesLunch
places.servesVegetarianFood
places.servesWine
places.takeout
* Pesquisa de texto e Pesquisa por proximidade apenas
-
textQuery
A string de texto em que pesquisar, por exemplo, "restaurante", "Rua Principal, 123" ou "melhor lugar para visitar em São Francisco". A API retorna correspondências possíveis com base nessa string e ordena os resultados com base na relevância.
Parâmetros opcionais
includedType
Favorece os resultados para lugares correspondentes ao tipo especificado definido pela Tabela A. Só é possível especificar um tipo. Exemplo:
"includedType":"bar"
"includedType":"pharmacy"
A Pesquisa de texto (nova) aplica a filtragem por tipo a determinadas consultas, dependendo da aplicabilidade. Por exemplo, a filtragem por tipo pode não ser aplicada a consultas de endereços específicos ("Rua Principal, 123"), mas é quase sempre aplicada a consultas categóricas ("lojas por perto" ou "shopping centers").
Para aplicar a filtragem de tipo a todas as consultas, defina
strictTypeFiltering
comotrue
.-
includePureServiceAreaBusinesses
Se definido como
true
, a resposta inclui empresas que visitam ou entregam diretamente aos clientes, mas não têm um local físico. Se definido comofalse
, a API vai retornar apenas empresas com um local físico. languageCode
O idioma em que os resultados serão retornados.
- Consulte a lista de idiomas compatíveis. O Google atualiza os idiomas aceitos com frequência, então esta lista pode não estar completa.
-
Se
languageCode
não for fornecido, a API vai usaren
como padrão. Se você especificar um código de idioma inválido, a API vai retornar um erroINVALID_ARGUMENT
. - A API faz o possível para fornecer um endereço legível para o usuário e os moradores locais. Para isso, ele retorna endereços em português, transliterados para um script legível pelo usuário, se necessário, observando o idioma preferido. Todos os outros endereços são retornados no idioma preferido. Todos os componentes de endereço são retornados no mesmo idioma, que é escolhido no primeiro componente.
- Se um nome não estiver disponível no idioma preferido, a API usará a correspondência mais próxima.
- O idioma preferido tem uma pequena influência no conjunto de resultados que a API escolhe retornar e na ordem em que eles são retornados. O geocodificador interpreta abreviações de maneira diferente dependendo do idioma, como as abreviações de tipos de rua ou sinônimos que podem ser válidos em um idioma, mas não em outro.
locationBias
Especifica uma área para pesquisar. Esse local serve como uma polarização, o que significa que os resultados ao redor do local especificado podem ser retornados, incluindo resultados fora da área especificada.
Você pode especificar
locationRestriction
oulocationBias
, mas não ambos. Pense emlocationRestriction
como a região em que os resultados precisam estar e emlocationBias
como a região em que os resultados provavelmente estarão dentro ou perto, mas podem estar fora da área.Especifique a região como uma janela de visualização retangular ou como um círculo.
Um círculo é definido por um ponto central e um raio em metros. O raio precisa estar entre 0,0 e 50.000,0, incluindo esses dois valores. O raio padrão é 0,0. Exemplo:
"locationBias": { "circle": { "center": { "latitude": 37.7937, "longitude": -122.3965 }, "radius": 500.0 } }
Um retângulo é uma janela de visualização de latitude-longitude, representada como dois pontos diagonais opostos, um baixo e um alto. O ponto baixo marca o canto sudoeste do retângulo, e o ponto alto representa o canto nordeste.
Uma janela de visualização é considerada uma região fechada, ou seja, inclui o limite. Os limites de latitude precisam estar entre -90 e 90 graus, e os de longitude entre -180 e 180 graus:
- Se
low
=high
, a janela de visualização consistirá nesse único ponto. - Se
low.longitude
>high.longitude
, o intervalo de longitude será invertido (a janela de visualização cruzará a linha de longitude de 180 graus). - Se
low.longitude
= -180 graus ehigh.longitude
= 180 graus, a janela de visualização inclui todas as longitudes. - Se
low.longitude
= 180 graus ehigh.longitude
= -180 graus, o intervalo de longitude estará vazio. - Se
low.latitude
>high.latitude
, o intervalo de latitude estará vazio.
Os valores baixo e alto precisam ser preenchidos, e a caixa representada não pode estar vazia. Uma janela de visualização vazia resulta em um erro.
Por exemplo, esta janela de visualização envolve totalmente a cidade de Nova York:
"locationBias": { "rectangle": { "low": { "latitude": 40.477398, "longitude": -74.259087 }, "high": { "latitude": 40.91618, "longitude": -73.70018 } } }
- Se
locationRestriction
Especifica uma área para pesquisar. Os resultados fora da área especificada não são retornados.
Especifique a região como uma janela de visualização retangular. Para um exemplo de definição da Viewport, consulte a descrição de
locationBias
.Você pode especificar
locationRestriction
oulocationBias
, mas não ambos. Pense emlocationRestriction
como a região em que os resultados precisam estar e emlocationBias
como a região em que os resultados provavelmente estarão dentro ou perto, mas podem estar fora da área.-
maxResultCount (descontinuado)
Especifica o número de resultados (entre 1 e 20) a serem exibidos por página. Por exemplo, definir um valor
maxResultCount
de 5 vai retornar até 5 resultados na primeira página. Se houver mais resultados que possam ser retornados da consulta, a resposta vai incluir umnextPageToken
que você pode transmitir em uma solicitação subsequente para acessar a próxima página. evOptions
Especifica parâmetros para identificar conectores e taxas de carregamento de veículos elétricos (VEs) disponíveis.
connectorTypes
Filtra pelo tipo de conector de carregamento de VE disponível em um lugar. Um lugar que não aceita nenhum dos tipos de conector será filtrado. Os tipos de conectores de carregamento de VE compatíveis incluem carregadores combinados (CA e CC), carregadores Tesla, carregadores compatíveis com GB/T (para carregamento rápido de VE na China) e carregadores de tomada. Para mais informações, consulte a documentação de referência.
- Para filtrar os resultados de um conector específico compatível, defina
connectorTypes
como esse valor. Por exemplo, para encontrar conectores J1772 tipo 1, definaconnectorTypes
comoEV_CONNECTOR_TYPE_J1772
. - Para filtrar resultados de conectores sem suporte, defina
connectorTypes
comoEV_CONNECTOR_TYPE_OTHER
. - Para filtrar resultados de qualquer tipo de conector que seja uma tomada elétrica, defina
connectorTypes
comoEV_CONNECTOR_TYPE_UNSPECIFIED_WALL_OUTLET
. - Para filtrar resultados de qualquer tipo de conector, defina
connectorTypes
comoEV_CONNECTOR_TYPE_UNSPECIFIED
ou não defina um valor paraconnectorTypes
.
- Para filtrar os resultados de um conector específico compatível, defina
minimumChargingRateKw
Filtra lugares por taxa mínima de recarga de veículos elétricos em quilowatts (kW). Todos os lugares com uma taxa menor que a mínima são filtrados. Por exemplo, para encontrar carregadores de VE com taxas de carregamento de pelo menos 10 kW, defina esse parâmetro como "10".
minRating
Restringe os resultados apenas àqueles cuja classificação média do usuário é maior ou igual a esse limite. Os valores precisam estar entre 0,0 e 5,0 (inclusive), em incrementos de 0,5. Por exemplo: 0, 0,5, 1,0, ..., 5,0 inclusive. Os valores são arredondados para o 0,5 mais próximo. Por exemplo, um valor de 0,6 elimina todos os resultados com uma classificação menor que 1,0.
openNow
Se
true
, retorne apenas os lugares que estão abertos para negócios no momento em que a consulta é enviada. Sefalse
, retorne todas as empresas, independente do status de abertura. Os lugares que não especificam horário de funcionamento no banco de dados do Google Places são retornados se você definir esse parâmetro comofalse
.pageSize
Especifica o número de resultados (entre 1 e 20) a serem exibidos por página. Por exemplo, definir um valor
pageSize
de 5 vai retornar até 5 resultados na primeira página. Se houver mais resultados que possam ser retornados da consulta, a resposta vai incluir umnextPageToken
que você pode transmitir em uma solicitação subsequente para acessar a próxima página.pageToken
Especifica o
nextPageToken
do corpo da resposta da página anterior.-
priceLevels
Restringir a pesquisa a lugares marcados em determinados níveis de preço. O padrão é selecionar todos os níveis de preço.
Os níveis de preços podem ser esperados para lugares dos seguintes tipos:
Os lugares de tipos não compatíveis não serão incluídos na resposta se
priceLevels
for especificado.Especifique uma matriz de um ou mais valores definidos por
PriceLevel
.Exemplo:
"priceLevels":["PRICE_LEVEL_INEXPENSIVE", "PRICE_LEVEL_MODERATE"]
rankPreference
Especifica como os resultados são classificados na resposta com base no tipo de consulta:
- Para uma consulta categórica, como "Restaurantes em São Paulo",
RELEVANCE
(classificar resultados por relevância da pesquisa) é o padrão. Você pode definirrankPreference
comoRELEVANCE
ouDISTANCE
(classificar os resultados por distância). - Para uma consulta não categórica, como "Mountain View, CA", recomendamos que você deixe
rankPreference
sem definição.
- Para uma consulta categórica, como "Restaurantes em São Paulo",
regionCode
O código da região usado para formatar a resposta, especificado como um valor de código CLDR de dois caracteres. Esse parâmetro também pode ter um efeito de viés nos resultados da pesquisa. Não há valor padrão.
Se o nome do país do campo
formattedAddress
na resposta corresponder aoregionCode
, o código do país será omitido deformattedAddress
. Esse parâmetro não tem efeito emadrFormatAddress
, que sempre inclui o nome do país quando disponível, nem emshortFormattedAddress
, que nunca o inclui.A maioria dos códigos CLDR é idêntica aos códigos ISO 3166-1, com algumas exceções notáveis. Por exemplo, o ccTLD do Reino Unido é "uk" (.co.uk), enquanto o código ISO 3166-1 é "gb" (tecnicamente para a entidade "Reino Unido da Grã-Bretanha e Irlanda do Norte"). O parâmetro pode afetar os resultados com base na legislação aplicável.
strictTypeFiltering
Usado com o parâmetro
includedType
. Quando definido comotrue
, somente os lugares que correspondem aos tipos especificados porincludeType
são retornados. Quando é "false" (o padrão), a resposta pode conter lugares que não correspondem aos tipos especificados.
Exemplos de Text Search (novo)
Encontrar um lugar por string de consulta
O exemplo a seguir mostra uma solicitação de pesquisa de texto (nova) para "Comida vegetariana apimentada em Sydney, Austrália":
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'
O cabeçalho X-Goog-FieldMask
especifica que a resposta contém os seguintes campos de dados: places.displayName,places.formattedAddress
.
A resposta fica assim:
{ "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" } }, { "formattedAddress": "29 King St, Sydney NSW 2000, Australia", "displayName": { "text": "Peace Harmony", "languageCode": "en" } }, ... ] }
Adicione mais tipos de dados à máscara de campo para retornar informações adicionais.
Por exemplo, adicione places.types,places.websiteUri
para incluir o tipo de restaurante e o endereço da Web na resposta:
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'
A resposta agora está no 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" } }, ... ] }
Filtrar lugares por nível de preço
Use a opção priceLevel
para filtrar os resultados de restaurantes definidos como baratos ou moderadamente caros:
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'
Este exemplo também usa o cabeçalho X-Goog-FieldMask
para adicionar o campo de dados places.priceLevel
à resposta, de modo que ela fique no 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" } }, ... ] }
Adicione outras opções para refinar sua pesquisa, como includedType
, minRating
, rankPreference
, openNow
e outros parâmetros descritos em Parâmetros opcionais.
Restringir a pesquisa a uma área especificada
Use locationRestriction
ou locationBias
, mas não ambos, para restringir uma pesquisa a uma área. Pense em locationRestriction
como a região em que os resultados precisam estar e em locationBias
como a região em que os resultados precisam estar próximos, mas podem estar fora da área.
Restringir área usando locationRestriction
Use o parâmetro locationRestriction
para restringir os resultados da consulta a uma região especificada. No corpo da solicitação, especifique os valores de latitude e longitude low
e high
que definem o limite da região.
O exemplo a seguir mostra uma solicitação de Pesquisa de texto (nova) para "comida vegetariana" na cidade de Nova York. Essa solicitação retorna apenas os 10 primeiros resultados de lugares abertos.
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'
Polarizar para uma área usando locationBias
O exemplo a seguir mostra uma solicitação de Pesquisa de texto (nova) para "comida vegetariana" com viés para um local a 500 metros de um ponto no centro de São Francisco. Essa solicitação retorna apenas os 10 primeiros resultados de lugares abertos.
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'
Pesquisar carregadores de VE com uma taxa mínima de recarga
Use minimumChargingRateKw
e connectorTypes
para
pesquisar lugares com carregadores disponíveis e compatíveis com seu VE.
O exemplo a seguir mostra uma solicitação de conectores de carregamento de veículos elétricos Tesla e J1772 tipo 1 com uma taxa mínima de carregamento de 10 kW em Mountain View, CA. Apenas quatro resultados são retornados.
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'
A solicitação retorna a seguinte resposta:
{ "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" }, { "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1", "maxChargeRateKw": 350, "count": 6, "availableCount": 3, "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" } ] } }, { "displayName": { "text": "EVgo Charging Station", "languageCode": "en" }, "evChargeOptions": { "connectorCount": 5, "connectorAggregation": [ { "type": "EV_CONNECTOR_TYPE_J1772", "maxChargeRateKw": 3.5999999046325684, "count": 1, "availableCount": 0, "outOfServiceCount": 1, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" }, { "type": "EV_CONNECTOR_TYPE_CHADEMO", "maxChargeRateKw": 50, "count": 2, "availableCount": 0, "outOfServiceCount": 0, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" }, { "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1", "maxChargeRateKw": 50, "count": 2, "availableCount": 0, "outOfServiceCount": 0, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" } ] } }, { "displayName": { "text": "Electric Vehicle Charging Station", "languageCode": "en" }, "evChargeOptions": { "connectorCount": 10, "connectorAggregation": [ { "type": "EV_CONNECTOR_TYPE_OTHER", "maxChargeRateKw": 210, "count": 10 } ] } } ] }
Pesquisar empresas de serviço local
Use o parâmetro includePureServiceAreaBusinesses
para pesquisar empresas sem um endereço físico de serviço (por exemplo, um serviço de limpeza móvel ou um food truck).
O exemplo a seguir mostra uma solicitação de encanadores em São 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'
Na resposta, as empresas sem um endereço de serviço físico não incluem o campo formattedAddress
:
{ "places": [ { "formattedAddress": "3450 Sacramento St #204, San Francisco, CA 94118, USA", "displayName": { "text": "Advanced Plumbing & Drain", "languageCode": "en" } }, { "formattedAddress": "1455 Bancroft Ave, San Francisco, CA 94124, USA", "displayName": { "text": "Magic Plumbing Heating & Cooling", "languageCode": "en" } }, /.../ { "displayName": { "text": "Starboy Plumbing Inc.", "languageCode": "en" } }, { "formattedAddress": "78 Dorman Ave, San Francisco, CA 94124, USA", "displayName": { "text": "Cabrillo Plumbing, Heating & Air", "languageCode": "en" } }, { "formattedAddress": "540 Barneveld Ave # D, San Francisco, CA 94124, USA", "displayName": { "text": "Mr. Rooter Plumbing of San Francisco", "languageCode": "en" } }, /.../ { "displayName": { "text": "Pipeline Plumbing", "languageCode": "en" } }, { "formattedAddress": "350 Bay St #100-178, San Francisco, CA 94133, USA", "displayName": { "text": "One Source Plumbing and Rooter", "languageCode": "en" } }, /.../ ] }
Especifique um número de resultados a serem retornados por página
Use o parâmetro pageSize
para especificar um número de resultados a serem retornados por página. O parâmetro nextPageToken
no corpo da resposta
fornece um token que pode ser usado em chamadas subsequentes para acessar a próxima página de
resultados.
O exemplo a seguir mostra uma solicitação de "pizza em Nova 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" }, { "id": "ChIJrXXKn5NZwokR78g0ipCnY60" }, { "id": "ChIJ6ySICVZYwokR9rIK8HjXhzE" }, { "id": "ChIJ6xvs94VZwokRnT1D2lX2OTw" } ], "nextPageToken": "AeCrKXsZWzNVbPzO-MRWPu52jWO_Xx8aKwOQ69_Je3DxRpfdjClq8Ekwh3UcF2h2Jn75kL6PtWLGV4ecQri-GEUKN_OFpJkdVc-JL4Q" }
Para acessar a próxima página de resultados, use pageToken
para transmitir o
nextPageToken
no corpo da solicitação:
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" }, { "id": "ChIJ6ffdpJNZwokRmcafdROM5q0" }, { "id": "ChIJ8Q2WSpJZwokRQz-bYYgEskM" }, { "id": "ChIJ8164qwFZwokRhplkmhvq1uE" } ], "nextPageToken": "AeCrKXvPd6uUy-oj96W2OaqEe2pUD8QTxOM8-sKfUcFsC9t2Wey5qivrKGoGSxcZnyc7RPmaFfAktslrKbUh31ZDTkL0upRmaxA7c_c" }
Receber descritores de endereço
Os descritores de endereço fornecem informações relacionais sobre a localização de um lugar, incluindo pontos de referência próximos e áreas que o contêm.
O exemplo a seguir mostra uma solicitação de pesquisa de texto (nova) para lugares perto de um shopping em San José. Neste exemplo, você inclui addressDescriptors
na 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
A resposta inclui o lugar especificado na solicitação, uma lista de pontos de referência próximos e a distância deles até o lugar, além de uma lista de áreas e a relação de contenção delas com o 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 }, { "name": "places/ChIJ8WvuSB7Lj4ARFyHppkxDRQ4", "placeId": "ChIJ8WvuSB7Lj4ARFyHppkxDRQ4", "displayName": { "text": "Macy's", "languageCode": "en" }, "types": [ "clothing_store", "department_store", "establishment", "point_of_interest", "store" ], "straightLineDistanceMeters": 116.24196 }, { "name": "places/ChIJ9d3plB_Lj4ARzyaU5bn80WY", "placeId": "ChIJ9d3plB_Lj4ARzyaU5bn80WY", "displayName": { "text": "Bank of America Financial Center", "languageCode": "en" }, "types": [ "bank", "establishment", "finance", "point_of_interest" ], "straightLineDistanceMeters": 121.61515 }, { "name": "places/ChIJaXCjxvXLj4ARCPmQpvJ52Lw", "placeId": "ChIJaXCjxvXLj4ARCPmQpvJ52Lw", "displayName": { "text": "Bloomingdale's", "languageCode": "en" }, "types": [ "clothing_store", "department_store", "establishment", "furniture_store", "home_goods_store", "point_of_interest", "shoe_store", "store" ], "straightLineDistanceMeters": 81.32396 } ], "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" }, { "name": "places/ChIJtYoUX2DLj4ARKoKOb1G0CpM", "placeId": "ChIJtYoUX2DLj4ARKoKOb1G0CpM", "displayName": { "text": "Central San Jose", "languageCode": "en" }, "containment": "WITHIN" } ] } }, /.../ ] }
Confira!
Com o APIs Explorer, você pode fazer solicitações de amostra para se familiarizar com a API e as opções dela.
Selecione o ícone da API api no lado direito da página.
Se quiser, edite os parâmetros da solicitação.
Selecione o botão Executar. Na caixa de diálogo, escolha a conta que você quer usar para fazer a solicitação.
No painel do APIs Explorer, selecione o ícone de tela cheia fullscreen para expandir a janela do APIs Explorer.