Text Search (nouvelle version)

Sélectionnez une plate-forme : Android iOS JavaScript Services Web

Développeurs de l'Espace économique européen (EEE)

Introduction

Text Search (nouveau) 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". Le service renvoie une liste des lieux correspondant à la chaîne de texte et aux limitations de zone géographique définis.

Ce service est particulièrement utile pour effectuer des requêtes d'adresses ambiguës dans un système automatisé. Les composants non liés à l'adresse de la chaîne peuvent également correspondre à des établissements et à des adresses. Voici des exemples de requêtes d'adresse ambiguës : adresses mal formatées ou requêtes incluant des composants non liés à l'adresse, comme des noms d'entreprises. Les requêtes telles que les deux premiers exemples du tableau ci-dessous peuvent renvoyer zéro résultat, sauf si une zone géographique (région, restriction géographique ou biais géographique, par exemple) est définie.

"10 High Street, Royaume-Uni" ou "123 Main Street, États-Unis" Plusieurs "High Street" au Royaume-Uni, plusieurs "Main Street" aux États-Unis. La requête ne renvoie pas les résultats souhaités, sauf si une restriction géographique est définie.
"ChainRestaurant New York" Plusieurs établissements "ChainRestaurant" à New York, sans adresse postale ni nom de rue.
"10 High Street, Escher UK" ou "123 Main Street, Pleasanton US" Il n'y a qu'une seule "High Street" dans la ville britannique d'Escher et une seule "Main Street" dans la ville américaine de Pleasanton, en Californie.
"UniqueRestaurantName New York" Un seul établissement porte ce nom à New York. Aucune adresse n'est nécessaire pour le différencier.
"restaurants de pizzas à New York" Cette requête contient sa restriction d'emplacement et "restaurants de pizzas" est un type de lieu bien défini. Elle renvoie plusieurs résultats.
"+1 514-670-8700"

Cette requête contient un numéro de téléphone. Elle renvoie plusieurs résultats pour les lieux associés à ce numéro de téléphone.

APIs Explorer vous permet d'envoyer des requêtes en direct pour 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 de la forme suivante :

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 dans le cadre 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)

La nouvelle recherche de texte renvoie un objet JSON en réponse. Dans la réponse :

  • Le tableau places contient tous les lieux correspondants.
  • Chaque lieu du tableau est représenté par un objet Place. L'objet Place contient 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.

L'objet JSON complet se présente sous la forme suivante :

{
  "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 $fields ou fields, ou à l'aide de l'en-tête HTTP X-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.name*
      nextPageToken

      * Le champ places.name inclut le nom de ressource du lieu dans le formulaire : places/PLACE_ID. Utilisez places.displayName dans le SKU Pro pour accéder au nom textuel du lieu.

    • 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.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

      * Les descripteurs d'adresse sont généralement disponibles pour les clients en Inde et sont expérimentaux ailleurs.

      ** Le champ places.googleMapsLinks est en phase d'aperçu avant disponibilité générale. L'utilisation pendant l'aperçu est sans frais, c'est-à-dire que la facturation est de 0 $.
    • 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.userRatingCount
      places.websiteUri
    • 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
      places.routingSummaries*
      places.servesBeer
      places.servesBreakfast
      places.servesBrunch
      places.servesCocktails
      places.servesCoffee
      places.servesDessert
      places.servesDinner
      places.servesLunch
      places.servesVegetarianFood
      places.servesWine
      places.takeout

      * Recherche de texte et recherche à proximité uniquement
  • textQuery

    Chaîne de texte sur laquelle doit porter 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.

Paramètres facultatifs

  • includedType

    Biaisent 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"

    La recherche de texte (nouveau) applique un filtrage par type pour certaines requêtes, en fonction de leur applicabilité. Par exemple, le filtrage par type peut ne pas être appliqué aux requêtes concernant des adresses spécifiques ("123 rue Principale"), mais il l'est presque toujours aux requêtes catégorielles ("magasins à proximité" ou "centres commerciaux").

    Pour appliquer le filtrage par type à toutes les requêtes, définissez strictTypeFiltering sur true.

  • includePureServiceAreaBusinesses

    Si la valeur est définie sur true, la réponse inclut les établissements qui se rendent chez les clients ou leur livrent directement des produits, mais qui n'ont pas de locaux physiques. Si la valeur est définie sur false, l'API ne renvoie que les établissements disposant d'un emplacement physique.

  • languageCode

    Langue dans laquelle renvoyer les résultats.

    • Consultez la liste des langues disponibles. Google met souvent à jour les langues acceptées. Cette liste n'est donc pas exhaustive.
    • Si languageCode n'est pas fourni, l'API utilise en par défaut. Si vous spécifiez un code de langue non valide, l'API renvoie une erreur INVALID_ARGUMENT.
    • L'API met tout en œuvre pour fournir une adresse postale lisible à la fois pour l'utilisateur et les habitants. Pour atteindre cet objectif, il 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 de votre choix. Les composants d'adresse sont tous renvoyés dans la même langue, qui est choisie à partir du premier composant.
    • Si un nom n'est pas disponible dans la langue de votre choix, l'API utilise la correspondance la plus proche.
    • La langue préférée a une faible influence sur l'ensemble des résultats que l'API choisit de renvoyer, ainsi que sur l'ordre dans lequel ils sont renvoyés. Le géocodeur interprète les abréviations différemment selon la langue, comme 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 biais, 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 locationRestriction ou locationBias, mais pas les deux. Considérez locationRestriction comme spécifiant la région dans laquelle les résultats doivent se trouver, et locationBias comme spécifiant la région dans laquelle les résultats seront probablement situés ou à proximité, mais qui peut être en dehors de la zone.

    Spécifiez la région sous forme de fenêtre d'affichage rectangulaire ou de 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 latitude-longitude, représentée par deux points bas et hauts diagonalement opposés. Le point bas marque l'angle sud-ouest du rectangle, et le point haut représente l'angle nord-est du rectangle.

      Une fenêtre d'affichage est considérée comme une région fermée, ce qui signifie qu'elle 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 seul point.
      • Si low.longitude > high.longitude, la plage de longitude est inversée (la fenêtre d'affichage traverse la ligne de longitude de 180 degrés).
      • Si low.longitude = -180 degrés et high.longitude = 180 degrés, la fenêtre d'affichage inclut toutes les longitudes.
      • Si low.longitude = 180 degrés et high.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
          }
        }
      }
  • locationRestriction

    Spécifie une zone de recherche. Les résultats en dehors de la zone spécifiée ne sont pas renvoyés.

    Spécifiez la région en tant que Viewport rectangulaire. Pour obtenir un exemple de définition de Viewport, consultez la description de locationBias.

    Vous pouvez spécifier locationRestriction ou locationBias, mais pas les deux. Considérez locationRestriction comme spécifiant la région dans laquelle les résultats doivent se trouver, et locationBias comme spécifiant la région dans laquelle les résultats seront probablement situés ou à proximité, mais qui peut être en dehors de la zone.

  • maxResultCount (obsolète)

    maxResultCountpageSize

    Spécifie le nombre de résultats (entre 1 et 20) à afficher par page. Par exemple, si vous définissez la valeur maxResultCount sur 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 un nextPageToken que vous pouvez transmettre dans une requête ultérieure pour accéder à la page suivante.

  • evOptions

    Spécifie les paramètres permettant d'identifier les connecteurs de recharge pour véhicules électriques (VE) et les tarifs de recharge disponibles.

    • connectorTypes

      Filtre par type de connecteur de recharge pour véhicules électriques disponible dans un lieu. Un lieu qui n'accepte aucun type de connecteur sera filtré. Les types de connecteurs de recharge pour véhicules électriques compatibles incluent les chargeurs combinés (CA et CC), les chargeurs Tesla, les chargeurs conformes à la norme GB/T (pour la recharge rapide de véhicules électriques en Chine) et les chargeurs sur prise murale. Pour en savoir plus, consultez la documentation de référence.

      • Pour filtrer les résultats d'un connecteur compatible spécifique, définissez connectorTypes sur cette valeur. Par exemple, pour trouver les connecteurs de type 1 J1772, définissez connectorTypes sur EV_CONNECTOR_TYPE_J1772.
      • Pour filtrer les résultats des connecteurs non compatibles, définissez connectorTypes sur EV_CONNECTOR_TYPE_OTHER.
      • Pour filtrer les résultats de tout type de connecteur qui est une prise murale, définissez connectorTypes sur EV_CONNECTOR_TYPE_UNSPECIFIED_WALL_OUTLET.
      • Pour filtrer les résultats pour n'importe quel type de connecteur, définissez connectorTypes sur EV_CONNECTOR_TYPE_UNSPECIFIED ou ne définissez aucune valeur pour connectorTypes.
    • minimumChargingRateKw

      Filtre les lieux en fonction du taux de recharge minimal des véhicules électriques en kilowatts (kW). Les lieux dont le tarif de recharge est inférieur au tarif minimal sont filtrés. Par exemple, pour trouver des bornes de recharge de VE avec des taux de recharge d'au moins 10 kW, vous pouvez définir ce paramètre sur "10".

  • minRating

    Restreint 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 à la demi-unité supérieure. 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 renvoyez que les lieux ouverts au moment de l'envoi de la requête. Si la valeur est false, renvoie tous les établissements, quel que soit leur état (ouvert ou fermé). Les lieux sans horaires d'ouverture dans la base de données Google Places sont renvoyés si vous définissez ce paramètre sur false.

  • pageSize

    Spécifie le nombre de résultats (entre 1 et 20) à afficher par page. Par exemple, si vous définissez la valeur pageSize sur 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 un nextPageToken que vous pouvez transmettre dans une requête ultérieure pour accéder à la page suivante.

  • pageToken

    Spécifie le nextPageToken du corps de réponse de la page précédente.

  • priceLevels

    Limiter la recherche aux lieux marqués à certains niveaux de prix Par défaut, tous les niveaux de prix sont sélectionnés.

    Vous pouvez vous attendre à trouver des niveaux de prix pour les lieux des types suivants :

    Les lieux de types non acceptés ne seront pas inclus dans la réponse si priceLevels est spécifié.

    Spécifiez un tableau d'une ou plusieurs valeurs définies par PriceLevel.

    Exemple :

    "priceLevels":["PRICE_LEVEL_INEXPENSIVE", "PRICE_LEVEL_MODERATE"]
  • rankPreference

    Spécifie le classement des résultats dans la réponse en fonction du type de requête :

    • Pour une requête par catégorie telle que "Restaurants à New York", RELEVANCE (classer les résultats par pertinence de la recherche) est la valeur par défaut. Vous pouvez définir rankPreference sur RELEVANCE ou DISTANCE (classer les résultats par distance).
    • Pour une requête non catégorielle telle que "Mountain View, CA", nous vous recommandons de laisser rankPreference non défini.
  • regionCode

    Code de région utilisé pour mettre en forme la réponse, spécifié sous la forme d'une valeur de 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 formattedAddress dans la réponse correspond à regionCode, le code pays est omis de formattedAddress. Ce paramètre n'a aucun effet sur adrFormatAddress, qui inclut toujours le nom du pays lorsqu'il est disponible, ni sur shortFormattedAddress, 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"). Ce paramètre peut avoir une incidence sur les résultats en fonction de la loi applicable.

  • strictTypeFiltering

    Utilisé avec le paramètre includedType. Lorsque la valeur est définie sur true, seuls les lieux correspondant aux types spécifiés par includeType sont 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" (Plats végétariens épicés à Sydney, Australie) :

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"
      }
    },
    {
      "formattedAddress": "29 King St, Sydney NSW 2000, Australia",
      "displayName": {
        "text": "Peace Harmony",
        "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, qui se présente donc 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, comme 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 locationRestriction comme spécifiant la région dans laquelle les résultats doivent se trouver, et locationBias comme spécifiant la région dont les résultats doivent être proches, mais qui peut être en dehors de la zone.

Restreindre une zone à l'aide de locationRestriction

Utilisez le paramètre locationRestriction pour limiter les résultats de la requête à une région spécifique. Dans le corps de votre 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 "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 une zone à l'aide de locationBias

L'exemple suivant montre une requête Text Search (nouveau) pour "nourriture végétarienne" orientée vers un lieu 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 de VE avec un taux de recharge minimum

Utilisez minimumChargingRateKw et connectorTypes pour rechercher des lieux disposant de bornes de recharge compatibles avec votre VE.

L'exemple suivant montre une requête pour les connecteurs de recharge de véhicules électriques de type Tesla et J1772 1 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"
          },
          {
            "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
          }
        ]
      }
    }
  ]
}

Rechercher des établissements de services de proximité à domicile

Utilisez le paramètre includePureServiceAreaBusinesses pour rechercher des établissements sans adresse de service physique (par exemple, un service de nettoyage mobile ou un food truck).

L'exemple suivant montre une demande de 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 ne doivent pas inclure le champ 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"
      }
    },
    /.../
  ]
}

Spécifier 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 dans le 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"
    },
    {
      "id": "ChIJrXXKn5NZwokR78g0ipCnY60"
    },
    {
      "id": "ChIJ6ySICVZYwokR9rIK8HjXhzE"
    },
    {
      "id": "ChIJ6xvs94VZwokRnT1D2lX2OTw"
    }
  ],
  "nextPageToken": "AeCrKXsZWzNVbPzO-MRWPu52jWO_Xx8aKwOQ69_Je3DxRpfdjClq8Ekwh3UcF2h2Jn75kL6PtWLGV4ecQri-GEUKN_OFpJkdVc-JL4Q"
}

Pour accéder à la page de résultats suivante, utilisez pageToken pour transmettre le 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"
    },
    {
      "id": "ChIJ6ffdpJNZwokRmcafdROM5q0"
    },
    {
      "id": "ChIJ8Q2WSpJZwokRQz-bYYgEskM"
    },
    {
      "id": "ChIJ8164qwFZwokRhplkmhvq1uE"
    }
  ],
  "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 qu'il contient.

L'exemple suivant montre une requête Text Search (nouveau) pour des lieux à 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 de points de repère à proximité et leur distance par rapport au lieu, ainsi qu'une liste de 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
          },
          {
            "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"
          }
        ]
      }
    },
    /.../
  ]
}

Essayer

APIs Explorer vous permet d'effectuer des exemples de requêtes pour vous familiariser avec l'API et ses options.

  1. Sélectionnez l'icône API api à droite de la page.

  2. Vous pouvez également modifier les paramètres de la requête.

  3. Sélectionnez le bouton Exécuter. Dans la boîte de dialogue, sélectionnez le compte que vous souhaitez utiliser pour envoyer la demande.

  4. Dans le panneau APIs Explorer, sélectionnez l'icône plein écran fullscreen pour développer la fenêtre APIs Explorer.