Text Search (nouvelle version)

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

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 répond avec la liste des lieux correspondant à la chaîne de texte et aux biais d'emplacement définis.

Ce service est particulièrement utile pour effectuer des requêtes d'adresse ambiguës dans un système automatisé. Les composants de la chaîne qui ne sont pas des adresses peuvent correspondre à des établissements et à des adresses. Les adresses mal formatées ou les requêtes qui incluent des composants autres que des adresses, comme des noms d'entreprises, sont des exemples de requêtes d'adresses ambiguës. Les requêtes telles que les deux premiers exemples du tableau suivant peuvent renvoyer zéro résultat à moins qu'une zone géographique (telle qu'une région, une restriction d'emplacement ou un biais d'emplacement) soit définie.

"10 High Street, Royaume-Uni" ou "123 Main Street, États-Unis" Plusieurs boutiques "High Street" au Royaume-Uni et plusieurs "Main Street" aux États-Unis. La requête ne renvoie pas de résultats souhaités, sauf si une restriction de zone géographique est définie.
"ChainRestaurant New York" Plusieurs établissements "ChainRestaurant" à New York, sans adresse ni même nom de rue.
"10 High Street, Escher UK" ou "123 Main Street, Pleasanton US" Il n'existe qu'une seule "High Street" dans la ville britannique d'Escher et une seule "Main Street" dans la ville américaine de Pleasanton (Californie).
"UniqueRestaurantName New York" Un seul établissement portant ce nom à New York. Aucune adresse n'est nécessaire pour le différencier.
"restaurants de pizza à New York" Cette requête contient sa restriction géographique, et "restaurants de pizzas" est un type d'établissement bien défini. Il 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 afin que vous puissiez vous familiariser avec l'API et ses options:

Essayer

Requêtes Text Search

Une requête Text Search 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)

La recherche de texte (nouvelle) 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. Aucune liste par défaut des champs renvoyés n'est fournie 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 à suivre pour vous assurer de ne pas demander de données inutiles, ce qui permet d'éviter 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 (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 pour accéder au nom textuel du lieu.
    • Les champs suivants déclenchent le SKU Text Search (Basic):

      places.accessibilityOptions, places.addressComponents, 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.primaryType, places.primaryTypeDisplayName, places.pureServiceAreaBusiness, places.shortFormattedAddress, places.subDestinations, places.types, places.utcOffsetMinutes, places.viewport

      * Le champ places.googleMapsLinks est en phase de pré-disponibilité générale et n'est pas facturé (0 $) pendant la phase de prévisualisation.
    • Les champs suivants déclenchent le SKU Text Search (Advanced):

      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 (Preferred):

      places.allowsDogs, places.curbsidePickup, places.delivery, places.dineIn, places.editorialSummary, places.evChargeOptions, places.fuelOptions, places.goodForChildren, places.goodForGroups, places.goodForWatchingSports, places.liveMusic, places.menuForChildren, places.parkingOptions, places.paymentOptions, places.outdoorSeating, places.reservable, places.restroom, places.reviews, 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 textuelle 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

    Limite les résultats aux lieux correspondant au type spécifié défini par la table A. Vous ne pouvez spécifier qu'un seul type. Exemple :

    • "includedType":"bar"
    • "includedType":"pharmacy"
  • includePureServiceAreaBusinesses

    Si la valeur est true, la réponse inclut les établissements qui se rendent chez les clients ou les livrent directement, mais qui ne disposent pas de locaux physiques. Si la valeur est false, l'API ne renvoie que les établissements disposant d'un établissement 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 languageCode n'est pas fourni, la valeur par défaut de l'API est en. Si vous spécifiez un code de langue non valide, l'API renvoie une erreur INVALID_ARGUMENT.
    • L'API s'efforce de fournir une adresse postale lisible à la fois pour l'utilisateur et pour les locaux. Pour ce faire, il renvoie les adresses dans la langue locale, translité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 de l'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 et sur l'ordre dans lequel ils sont renvoyés. Le géocodeur interprète les abréviations différemment selon la langue, par exemple les abréviations des types de rues ou les synonymes pouvant être valides dans une langue, mais pas dans une autre.
  • locationBias

    Spécifie une zone à rechercher. Cet emplacement sert de biais, ce qui signifie que des résultats autour de l'emplacement spécifié peuvent être renvoyés, y compris 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 se trouveront probablement ou à proximité, mais qui peut se trouver en dehors de cette zone.

    Spécifiez la région sous la forme d'une fenêtre d'affichage rectangulaire ou d'un cercle.

    • Un cercle est défini par le point central et le 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 bas et hauts diamétralement opposés. Le point bas marque le coin sud-ouest du rectangle, et le point haut représente le coin 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, et les limites de longitude 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 croise 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 est défini sur 180 degrés et high.longitude sur -180 degrés, la plage de longitude est vide.
      • Si low.latitudehigh.latitude, la plage de latitude est vide.

      Les valeurs "Faible" et "Élevée" doivent toutes les deux être renseignées, et la zone 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 New York:

      "locationBias": {
        "rectangle": {
          "low": {
            "latitude": 40.477398,
            "longitude": -74.259087
          },
          "high": {
            "latitude": 40.91618,
            "longitude": -73.70018
          }
        }
      }
  • locationRestriction

    Spécifie une zone à rechercher. Les résultats en dehors de la zone spécifiée ne sont pas renvoyés. Spécifiez la région en tant que fenêtre d'affichage rectangulaire. Pour en savoir plus sur la définition du 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 se trouveront probablement ou à proximité, mais qui peut se trouver en dehors de cette zone.

  • maxResultCount (obsolète)

    Spécifie le nombre de résultats (entre 1 et 20) à afficher par page. Par exemple, si vous définissez une valeur maxResultCount de 5, vous obtiendrez jusqu'à 5 résultats sur la première page. Si la requête peut renvoyer davantage de 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 et les tarifs de recharge pour les véhicules électriques (VE) disponibles.

    • connectorTypes

      Filtre par type de connecteur de recharge de VE disponible à un emplacement. Tout emplacement qui n'accepte aucun type de connecteur sera filtré. Les types de connecteurs de recharge de VE compatibles incluent les chargeurs combinés (AC et DC), 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.

    • minimumChargingRateKw

      Filtre les lieux en fonction du débit de recharge minimal pour les véhicules électriques en kilowatts (kW). Les lieux qui facturent un tarif inférieur au tarif minimal sont filtrés. Par exemple, pour trouver des bornes de recharge de VE avec des puissances 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 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, etc., jusqu'à 5,0 inclus. Les valeurs sont arrondies à la décimale (0,5) la 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, seules les entreprises ouvertes au moment de l'envoi de la requête sont renvoyées. Si la valeur est false, tous les établissements sont renvoyés, quel que soit leur état d'ouverture. Les lieux qui ne spécifient pas d'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 d'autres résultats peuvent être renvoyés à partir de la requête, la réponse inclut un nextPageToken que vous pouvez transmettre à une requête ultérieure pour accéder à la page suivante.

  • pageToken

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

  • priceLevels

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

    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 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 (classement des résultats en fonction de la pertinence de la recherche) est défini par défaut. Vous pouvez définir rankPreference sur RELEVANCE ou DISTANCE (classer les résultats par distance).
    • Pour une requête non catégorique telle que "Mountain View, CA", nous vous recommandons de ne pas définir rankPreference.
  • 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 influer sur les résultats de recherche. Il n'existe pas de valeur par défaut.

    Si le nom du pays du champ formattedAddress de 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"). Le paramètre peut avoir une incidence sur les résultats en fonction de la législation applicable.

  • strictTypeFiltering

    Utilisé avec le paramètre includedType. Lorsque ce paramètre est défini sur true, seuls les lieux correspondant aux types spécifiés par includeType sont renvoyés. Lorsque la valeur est "false" (par défaut), la réponse peut contenir des lieux qui ne correspondent pas aux types spécifiés.

Exemples de recherche textuelle

Trouver un lieu par chaîne de requête

L'exemple suivant illustre une requête Text Search 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"
      }
    },
    {
      "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 sur les restaurants définis comme peu chers ou modérément 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. Il 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, telles que includedType, minRating, rankPreference, openNow et d'autres paramètres décrits dans la section Paramètres facultatifs.

Rechercher des lieux dans une zone

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 à proximité de laquelle les résultats doivent se trouver, mais qui peut être en dehors de la zone.

L'exemple suivant montre une requête Text Search pour "Spicy Vegetarian Food" (Nourriture végétarienne épicée). Celle-ci est biaisée pour se situer à 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" : "Spicy 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 tarif de recharge minimal

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

L'exemple suivant montre une requête de connecteurs de recharge de VE Tesla et J1772 de type 1 avec un débit de recharge minimal de 10 kW à Mountain View (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 entreprises qui ne disposent pas d'une adresse physique à communiquer aux services d'urgence (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 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"
}

Essayer

API Explorer vous permet d'envoyer des exemples de requêtes afin de vous familiariser avec l'API et ses options.

  1. Sélectionnez l'icône d'API Développez l'explorateur d'API. sur le côté droit de la page.

  2. Vous pouvez également développer Afficher les paramètres standards et définir le paramètre fields sur le masque de champ.

  3. Vous pouvez également modifier le corps de la requête.

  4. Sélectionnez le bouton Execute (Exécuter). Dans la boîte de dialogue pop-up, sélectionnez le compte que vous souhaitez utiliser pour effectuer la demande.

  5. Dans le panneau API Explorer, sélectionnez l'icône de développement, Développez l'explorateur d'API., pour développer la fenêtre API Explorer.