Introduction
Text Search (New) renvoie des informations sur un ensemble de lieux en fonction d'une chaîne (par exemple, "pizza à New York", "magasin de chaussures près d'Ottawa" ou "123 Main Street"). Ce service renvoie une liste des lieux correspondant à la chaîne de texte et aux limitations de zone géographique définis.
En plus des paramètres obligatoires, Text Search (New) permet d'affiner les requêtes à l'aide de paramètres facultatifs pour obtenir de meilleurs résultats.
APIs Explorer vous permet d'effectuer des requêtes en direct afin de vous familiariser avec l'API et ses options :
Requêtes Text Search (nouvelle version)
Une requête Text Search (New) est une requête HTTP POST au format suivant :
https://places.googleapis.com/v1/places:searchText
Transmettez tous les paramètres dans le corps de la requête JSON ou dans les en-têtes de la requête POST. Exemple :
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'Réponses Text Search (nouvelle version)
Text Search (New) renvoie un objet JSON en tant que réponse. Dans la réponse :
- Le tableau
placescontient tous les lieux correspondants. - Chaque lieu du tableau est représenté par un objet
Place. L'objetPlacecontient des informations détaillées sur un seul lieu. - Le FieldMask transmis dans la requête spécifie la liste des champs renvoyés dans l'objet
Place. - Il n'est pas garanti que la liste des lieux renvoyés soit cohérente pour des requêtes identiques.
L'objet JSON complet est au format suivant :
{
"places": [
{
object (Place)
}
]
}Paramètres obligatoires
-
FieldMask
Spécifiez la liste des champs à renvoyer dans la réponse en créant un masque de champ de réponse. Transmettez le masque de champ de réponse à la méthode à l'aide du paramètre d'URL
$fieldsoufields, ou de l'en-tête HTTPX-Goog-FieldMask. Il n'existe pas de liste par défaut des champs renvoyés dans la réponse. Si vous omettez le masque de champ, la méthode renvoie une erreur.Le masquage de champ est une bonne pratique à appliquer pour vous assurer de ne pas demander de données inutiles. Vous pourrez ainsi réduire le temps de traitement et les frais facturés.
Spécifiez une liste de types de données de lieu à renvoyer, séparés par une virgule. Par exemple, pour récupérer le nom à afficher et l'adresse du lieu.
X-Goog-FieldMask: places.displayName,places.formattedAddress
Utilisez
*pour récupérer tous les champs.X-Goog-FieldMask: *
Spécifiez un ou plusieurs des champs suivants :
Les champs suivants déclenchent le SKU Text Search Essentials ID Only :
places.attributions
places.id
places.consumerAlert
places.name*
nextPageToken
places.movedPlace
places.movedPlaceId* Le champ
places.nameinclut le nom de ressource du lieu dans le formulaire :places/PLACE_ID. Utilisezplaces.displayNamedans le SKU Pro pour accéder au nom textuel du lieu.Pour obtenir la liste complète des champs et de leurs SKU associés, consultez Champs de données de lieu (nouveau).
Les champs suivants déclenchent le SKU 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
* Les descripteurs d'adresse sont en disponibilité générale pour les clients en Inde et sont expérimentaux ailleurs.Pour obtenir la liste complète des champs et de leurs SKU associés, consultez Champs de données de lieu (nouveau).
Les champs suivants déclenchent le SKU 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.websiteUriPour obtenir la liste complète des champs et de leurs SKU associés, consultez Champs de données de lieu (nouveau).
Les champs suivants déclenchent le 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
* Text Search et Nearby Search uniquementPour obtenir la liste complète des champs et de leurs SKU associés, consultez Champs de données de lieu (nouveau).
-
textQuery
Chaîne de texte sur laquelle effectuer la recherche. Par exemple, "restaurant", "123 Main Street" ou "Meilleur endroit à visiter à San Francisco". L'API renvoie les résultats correspondant à cette chaîne et les classe en fonction de leur pertinence estimée.
Text Search (nouvelle version) n'est pas destiné aux requêtes ambiguës, y compris les suivantes :
Type de requête Exemple Trop de concepts ou de contraintes, comme les noms de plusieurs lieux, routes ou villes dans une même requête "Market Street San Francisco San Jose Airport" Éléments d'adresse postale non représentés sur Google Maps "C/O John Smith 123 Main Street"
"P.O. Box 13 San Francisco"Noms d'entreprises, de chaînes ou de catégories associés à des zones géographiques où ces entités ne sont pas disponibles "Tesco près de Dallas, Texas" Requêtes ambiguës avec plusieurs interprétations "Charger drop-off" Noms historiques qui ne sont plus utilisés "Middlesex United Kingdom" Éléments ou intention non géospatiaux "Combien de bateaux y a-t-il dans le port de Ventura ?" Noms non officiels ou personnalisés "The Jenga"
"The Helter Skelter"Coordonnées (latitude et longitude) "37.422131,-122.084801"
Paramètres facultatifs
-
includeFutureOpeningBusinesses
Si la valeur est
true, renvoie les établissements qui devraient ouvrir à l'avenir. La valeur par défaut estfalse.
Pour récupérer l'état de l'établissement, incluezplaces.businessStatusdans le masque de champ de votre requête. Pour récupérer la date d'ouverture prévue de l'établissement, incluezplaces.openingDatedans le masque de champ de votre requête. -
includedType
Oriente les résultats vers les lieux correspondant au type spécifié défini par le tableau A. Vous ne pouvez spécifier qu'un seul type. Exemple :
"includedType":"bar""includedType":"pharmacy"
Text Search (New) applique un filtrage par type pour certaines requêtes, selon leur applicabilité. Par exemple, le filtrage par type peut ne pas être appliqué aux requêtes portant sur des adresses spécifiques ("123 Main Street"), mais il est presque toujours appliqué aux requêtes catégorielles ("magasins à proximité" ou "centres commerciaux").
Pour appliquer le filtrage par type à toutes les requêtes, définissez
strictTypeFilteringsurtrue. -
includePureServiceAreaBusinesses
Si la valeur est définie sur
true, la réponse inclut les établissements qui se rendent directement chez les clients ou qui proposent un service de livraison, mais qui ne disposent pas d'un établissement physique. Si la valeur estfalse, l'API ne renvoie que les établissements disposant d'une adresse physique. languageCode
Langue dans laquelle les résultats doivent être renvoyés.
- Consultez la liste des langues acceptées. Google met souvent à jour les langues acceptées. Cette liste n'est donc pas exhaustive.
-
Si
languageCoden'est pas fourni, l'API utilise par défauten. Si vous spécifiez un code de langue non valide, l'API renvoie une erreurINVALID_ARGUMENT. - L'API s'efforce de fournir une adresse postale lisible à la fois pour l'utilisateur et pour les habitants. Pour atteindre cet objectif, elle renvoie les adresses postales dans la langue locale, translittérées dans un script lisible par l'utilisateur si nécessaire, en respectant la langue préférée. Toutes les autres adresses sont renvoyées dans la langue préférée. Les composants d'adresse sont tous renvoyés dans la même langue, qui est choisie à partir du premier composant.
- Si aucun nom n'est disponible dans la langue préférée, l'API utilise la correspondance la plus proche.
- La langue préférée a une légère influence sur l'ensemble des résultats que l'API choisit de renvoyer et sur l'ordre dans lequel ils sont renvoyés. Le geocoder interprète les abréviations différemment selon la langue, par exemple les abréviations des types de rues ou les synonymes qui peuvent être valides dans une langue, mais pas dans une autre.
locationBias
Spécifie une zone de recherche. Cet emplacement sert de pondération, ce qui signifie que des résultats autour de l'emplacement spécifié peuvent être renvoyés, y compris des résultats en dehors de la zone spécifiée.
Vous pouvez spécifier
locationRestrictionoulocationBias, mais pas les deux. Considérez quelocationRestrictionspécifie la région dans laquelle les résultats doivent se trouver, et quelocationBiasspécifie la région dans laquelle les résultats sont susceptibles de se trouver ou d'être proches, mais peuvent se trouver en dehors de la zone.Spécifiez la région sous la forme d'un fenêtre d'affichage rectangulaire ou d'un cercle.
Un cercle est défini par un point central et un rayon en mètres. Le rayon doit être compris entre 0,0 et 50 000,0 (inclus). Le rayon par défaut est de 0,0. Exemple :
"locationBias": { "circle": { "center": { "latitude": 37.7937, "longitude": -122.3965 }, "radius": 500.0 } }
Un rectangle est une fenêtre d'affichage de latitude/longitude, représentée par deux points opposés en diagonale (un point bas et un point haut). Le point bas marque l'angle sud-ouest du rectangle, et le point haut représente l'angle nord-est du rectangle.
Un viewport est considéré comme une région fermée, ce qui signifie qu'il inclut sa limite. Les limites de latitude doivent être comprises entre -90 et 90 degrés inclus, et les limites de longitude doivent être comprises entre -180 et 180 degrés inclus :
- Si
low=high, la fenêtre d'affichage se compose de ce point unique. - Si
low.longitude>high.longitude, la plage de longitude est inversée (la fenêtre d'affichage croise la ligne de longitude de 180 degrés). - Si
low.longitude= -180 degrés ethigh.longitude= 180 degrés, la fenêtre d'affichage inclut toutes les longitudes. - Si
low.longitude= 180 degrés ethigh.longitude= -180 degrés, la plage de longitude est vide. - Si
low.latitude>high.latitude, la plage de latitude est vide.
Les valeurs basse et haute doivent être renseignées, et la boîte représentée ne peut pas être vide. Un viewport vide génère une erreur.
Par exemple, cette fenêtre d'affichage englobe entièrement la ville de New York :
"locationBias": { "rectangle": { "low": { "latitude": 40.477398, "longitude": -74.259087 }, "high": { "latitude": 40.91618, "longitude": -73.70018 } } }
- Si
locationRestriction
Spécifie une zone de recherche pour les requêtes catégorielles uniquement, qui peuvent renvoyer plusieurs lieux (par exemple, "Restaurants à New York" ou "Centres commerciaux"). Les résultats en dehors de la zone spécifiée ne sont pas renvoyés.
Spécifiez la région sous la forme d'un fenêtre d'affichage rectangulaire. Pour obtenir un exemple de définition de la fenêtre d'affichage, consultez la description de
locationBias.Vous pouvez spécifier
locationRestrictionoulocationBias, mais pas les deux. Considérez quelocationRestrictionspécifie la région dans laquelle les résultats doivent se trouver, et quelocationBiasspécifie la région dans laquelle les résultats sont susceptibles de se trouver ou d'être proches, mais peuvent se trouver en dehors de la zone.evOptions
Spécifie les paramètres permettant d'identifier les connecteurs de recharge pour véhicules électriques (VE) disponibles et les tarifs de recharge.
connectorTypes
Filtre par type de connecteur de borne pour véhicules électriques disponible dans un lieu. Un lieu qui n'est compatible avec aucun des types de connecteurs sera filtré. Les types de connecteurs de recharge de VE compatibles incluent les chargeurs combinés (CA et CC), les chargeurs Tesla, les chargeurs conformes à la norme GB/T (pour la recharge rapide des VE en Chine) et les chargeurs sur prise murale. Pour en savoir plus, consultez la documentation de référence.
- Pour filtrer les résultats pour un connecteur compatible spécifique, définissez
connectorTypessur cette valeur. Par exemple, pour trouver des connecteurs J1772 de type 1, définissezconnectorTypessurEV_CONNECTOR_TYPE_J1772. - Pour filtrer les résultats pour les connecteurs non compatibles, définissez
connectorTypessurEV_CONNECTOR_TYPE_OTHER. - Pour filtrer les résultats pour tout type de connecteur qui est une prise murale, définissez
connectorTypessurEV_CONNECTOR_TYPE_UNSPECIFIED_WALL_OUTLET. - Pour filtrer les résultats pour n'importe quel type de connecteur, définissez
connectorTypessurEV_CONNECTOR_TYPE_UNSPECIFIEDou ne définissez pas de valeur pourconnectorTypes.
- Pour filtrer les résultats pour un connecteur compatible spécifique, définissez
minimumChargingRateKw
Filtre les lieux en fonction de la vitesse de recharge minimale des véhicules électriques en kilowatts (kW). Tous les lieux dont le taux de recharge est inférieur au taux de recharge minimal sont filtrés. Par exemple, pour trouver des bornes de recharge pour véhicules électriques avec des taux de recharge d'au moins 10 kW, vous pouvez définir ce paramètre sur "10".
minRating
Limite les résultats à ceux dont la note moyenne des utilisateurs est supérieure ou égale à cette limite. Les valeurs doivent être comprises entre 0,0 et 5,0 (inclus) par incréments de 0,5. Par exemple : 0, 0,5, 1,0, ..., 5,0 inclus. Les valeurs sont arrondies au 0,5 le plus proche. Par exemple, une valeur de 0,6 élimine tous les résultats dont la note est inférieure à 1,0.
openNow
Si la valeur est
true, ne renvoie que les lieux ouverts au moment de l'envoi de la requête. Si la valeur estfalse, renvoie tous les établissements, quel que soit leur état d'ouverture. Si vous définissez ce paramètre surfalse, les lieux qui ne précisent pas d'horaires d'ouverture dans la base de données Google Places sont renvoyés.pageSize
Spécifie le nombre de résultats (entre 1 et 20) à afficher sur chaque page. Par exemple, si vous définissez une valeur
pageSizede 5, vous obtiendrez jusqu'à cinq résultats sur la première page. Si la requête peut renvoyer d'autres résultats, la réponse inclut unnextPageTokenque vous pouvez transmettre dans une requête ultérieure pour accéder à la page suivante.Ce champ remplace le champ
maxResultCount, désormais obsolète. Si vous spécifiez à la foispageSizeetmaxResultCount, l'API utilisepageSizeet ignoremaxResultCount.pageToken
Spécifie le
nextPageTokendu corps de la réponse de la page précédente.-
priceLevels
Limiter la recherche aux lieux correspondant à certains niveaux de prix. Par défaut, tous les niveaux de prix sont sélectionnés.
Les niveaux de prix sont disponibles pour les types de lieux suivants :
Les lieux de types non compatibles ne seront pas inclus dans la réponse si
priceLevelsest spécifié.Spécifiez un tableau d'une ou de plusieurs valeurs définies par
PriceLevel.Exemple :
"priceLevels":["PRICE_LEVEL_INEXPENSIVE", "PRICE_LEVEL_MODERATE"]
rankPreference
Spécifie la façon dont les résultats sont classés dans la réponse en fonction du type de requête :
- Pour une requête par catégorie telle que "Restaurants à New York",
RELEVANCE(classement des résultats par pertinence de recherche) est la valeur par défaut. Vous pouvez définirrankPreferencesurRELEVANCEouDISTANCE(classement des résultats par distance). - Pour une requête non catégorielle telle que "Mountain View, CA", nous vous recommandons de ne pas définir
rankPreference.
- Pour une requête par catégorie telle que "Restaurants à New York",
regionCode
Code de région utilisé pour formater la réponse, spécifié sous la forme d'un code CLDR à deux caractères. Ce paramètre peut également avoir un effet de biais sur les résultats de recherche. Il n'existe pas de valeur par défaut.
Si le nom du pays du champ
formattedAddressdans la réponse correspond àregionCode, le code pays est omis deformattedAddress. Ce paramètre n'a aucun effet suradrFormatAddress, qui inclut toujours le nom du pays lorsqu'il est disponible, ni surshortFormattedAddress, qui ne l'inclut jamais.La plupart des codes CLDR sont identiques aux codes ISO 3166-1, à quelques exceptions près. Par exemple, le ccTLD du Royaume-Uni est "uk" (.co.uk), tandis que son code ISO 3166-1 est "gb" (techniquement pour l'entité "Royaume-Uni de Grande-Bretagne et d'Irlande du Nord"). Le paramètre peut affecter les résultats en fonction de la législation applicable.
strictTypeFiltering
Utilisé avec le paramètre
includedType. Lorsque ce paramètre est défini surtrue, seuls les lieux correspondant aux types spécifiés parincludedTypesont renvoyés. Si la valeur est "false" (valeur par défaut), la réponse peut contenir des lieux qui ne correspondent pas aux types spécifiés.
Exemples de Text Search (nouvelle version)
Trouver un lieu par chaîne de requête
L'exemple suivant montre une requête Text Search (New) pour "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'
Notez que l'en-tête X-Goog-FieldMask spécifie que la réponse contient les champs de données suivants : places.displayName,places.formattedAddress.
La réponse se présente alors sous la forme suivante :
{ "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" } }, ... ] }
Ajoutez d'autres types de données au masque de champ pour renvoyer des informations supplémentaires.
Par exemple, ajoutez places.types,places.websiteUri pour inclure le type de restaurant et l'adresse Web dans la réponse :
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 réponse se présente désormais sous la forme suivante :
{ "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" } }, ... ] }
Filtrer les lieux par niveau de prix
Utilisez l'option priceLevel pour filtrer les résultats et n'afficher que les restaurants définis comme peu chers ou moyennement chers :
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'Cet exemple utilise également l'en-tête X-Goog-FieldMask pour ajouter le champ de données places.priceLevel à la réponse, de sorte qu'il se présente sous la forme suivante :
{ "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" } }, ... ] }
Ajoutez des options supplémentaires pour affiner votre recherche, telles que includedType, minRating, rankPreference, openNow et d'autres paramètres décrits dans Paramètres facultatifs.
Limiter la recherche à une zone spécifique
Utilisez locationRestriction ou locationBias, mais pas les deux, pour limiter une recherche à une zone. Considérez que locationRestriction spécifie la région dans laquelle les résultats doivent se trouver, et que locationBias spécifie la région dont les résultats doivent être proches, mais qui peut se trouver en dehors de la zone.
Limiter la zone à l'aide de locationRestriction
Utilisez le paramètre locationRestriction pour limiter les résultats de la requête à une région spécifiée. Dans le corps de la requête, spécifiez les valeurs de latitude et de longitude low et high qui définissent la limite de la région.
L'exemple suivant montre une requête Text Search (New) pour "vegetarian food" (nourriture végétarienne) à New York. Cette requête ne renvoie que les 10 premiers résultats pour les lieux ouverts.
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'
Pondérer sur une zone à l'aide de locationBias
L'exemple suivant montre une requête Text Search (nouvelle version) pour "nourriture végétarienne" orientée vers un emplacement situé à moins de 500 mètres d'un point du centre-ville de San Francisco. Cette requête ne renvoie que les 10 premiers résultats pour les lieux ouverts.
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'
Rechercher des bornes de recharge pour véhicules électriques avec un taux de recharge minimal
Utilisez minimumChargingRateKw et connectorTypes pour rechercher des lieux disposant de bornes de recharge disponibles et compatibles avec votre VE.
L'exemple suivant montre une requête pour des connecteurs de recharge de VE de type 1 Tesla et J1772 avec un taux de recharge minimal de 10 kW à Mountain View, en Californie. Seuls quatre résultats sont renvoyés.
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 requête renvoie la réponse suivante :
{ "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" } ] } }, ... ] }
Rechercher des établissements de services de proximité
Utilisez le paramètre includePureServiceAreaBusinesses pour rechercher des établissements sans adresse physique (par exemple, un service de nettoyage mobile ou un food truck).
L'exemple suivant montre une requête pour des plombiers à 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'
Dans la réponse, les établissements sans adresse physique n'incluent pas le champ 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" } }, ... ] }
Spécifiez le nombre de résultats à renvoyer par page.
Utilisez le paramètre pageSize pour spécifier le nombre de résultats à renvoyer par page. Le paramètre nextPageToken du corps de la réponse fournit un jeton qui peut être utilisé dans les appels suivants pour accéder à la page de résultats suivante.
L'exemple suivant montre une requête pour "pizza à New York" limitée à cinq résultats par page :
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" }
Pour accéder à la page de résultats suivante, utilisez pageToken pour transmettre nextPageToken dans le corps de la requête :
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" }
Obtenir des descripteurs d'adresse
Les descripteurs d'adresse fournissent des informations relationnelles sur l'emplacement d'un lieu, y compris les points de repère à proximité et les zones environnantes.
L'exemple suivant montre une requête Text Search (New) pour des lieux situés à proximité d'un centre commercial à San José. Dans cet exemple, vous incluez addressDescriptors dans le masque de champ :
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 réponse inclut le lieu spécifié dans la requête, une liste des points de repère à proximité et leur distance par rapport au lieu, ainsi qu'une liste des zones et leur relation de confinement avec le lieu :
{ "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" }, ... ] } }, ... ] }
Trouver des établissements qui ouvriront prochainement
L'exemple suivant montre une requête Text Search (New) pour les établissements qui ouvriront à l'avenir à New Meadows, dans l'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 réponse inclut les établissements qui ouvriront à l'avenir, ainsi que leur état et leur date d'ouverture prévue :
{ "places": [ { "id": "ChIJp1-VoKWJplQRMz8g-7Wa3Do", "businessStatus": "FUTURE_OPENING", "displayName": { "text": "Roberts Greenhouse and Tree Farm", "languageCode": "en" }, "openingDate": { "year": 2026, "month": 4, "day": 15 } } ] }
Obtenir des informations sur les arrêts de transports en commun
Vous pouvez utiliser Text Search (nouvelle version) pour rechercher des stations de transports en commun. Le corps de la réponse inclut des informations sur la station, y compris son nom, les agences de transports en commun affiliées et les lignes de transports en commun qui la desservent. La réponse inclut également une icône de véhicule et des couleurs que vous pouvez utiliser pour afficher les informations sur la station de transports en commun.
L'exemple suivant montre une requête pour "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"
Le corps de la réponse inclut des informations sur chaque station dans le rayon, les lignes desservies par la station, les alertes émises par les agences de transports en commun à cet arrêt et les informations de départ :
{ "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" } } ] }
Obtenir les entrées et les points de navigation
Vous pouvez demander des entrées et des points de navigation pour une destination. Les entrées définissent les points d'entrée et de sortie d'un lieu (par exemple, les différentes portes d'un aéroport ou d'un centre commercial). Les points de navigation définissent les emplacements en bord de route où la navigation doit se terminer. Cela est utile pour diriger les utilisateurs vers le bon côté de la route ou un point de dépose spécifique.
Les points de navigation renvoient un navigationPointToken. Vous pouvez transmettre ce jeton au SDK Navigation (disponible pour Android ou iOS) ou à l'API Routes pour guider les conducteurs vers cet emplacement spécifique. Pour en savoir plus, consultez Jetons de point de navigation.
L'exemple suivant montre une requête Text Search (New) pour "Aéroport international de San Francisco" qui inclut entrances et navigationPoints dans le masque de champ :
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 réponse inclut les entrées et les points de navigation du lieu :
{ "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"] }, ... ] } ] }
Essayer
APIs Explorer vous permet d'effectuer des exemples de requêtes afin de vous familiariser avec l'API et ses options.
Sélectionnez l'icône API api sur le côté droit de la page.
Vous pouvez modifier les paramètres de la requête.
Sélectionnez le bouton Exécuter. Dans la boîte de dialogue, choisissez le compte que vous souhaitez utiliser pour effectuer la requête.
Dans le panneau APIs Explorer, sélectionnez l'icône Plein écran fullscreen pour agrandir la fenêtre APIs Explorer.