Ce document décrit les paramètres de requête de l'API Places Aggregate et inclut des insights et des bonnes pratiques pour utiliser ce service.
L'API Places Aggregate vous permet d'effectuer plusieurs fonctions clés :
- Nombre de lieux : déterminez le nombre de lieux qui correspondent à des critères spécifiques, tels que le type de lieu, l'état de fonctionnement, la tranche de prix et les notes.
- Récupérer les détails d'un lieu : obtenez les noms des lieux qui répondent aux filtres spécifiés, puis récupérez des informations plus détaillées à l'aide de l'API Places.
- Filtrage flexible : appliquez des filtres complets pour obtenir des agrégats précis. Voici les filtres disponibles :
- Zone géographique (cercle, région ou polygone personnalisé)
- Types de lieu
- Statut
- Niveaux de prix
- Plages de classification
Paramètres obligatoires
Cette section décrit les paramètres requis lorsque vous envoyez une requête à l'API Places Aggregate. Chaque requête doit fournir les éléments suivants :
- Type d'insight.
- Un filtre d'emplacement et un filtre de type.
Type de statistiques
Spécifie le type d'insight que vous souhaitez calculer. Les types d'insights suivants sont acceptés :
INSIGHT_COUNT
: renvoie le nombre de lieux correspondant aux critères de filtre.INSIGHT_PLACES
: renvoie les ID de lieux correspondant aux critères de filtrage.
Filtres
Spécifie les critères de filtrage des lieux. Vous devez au minimum spécifier LocationFilter
et TypeFilter
.
Filtre d'emplacement
Un filtre de localisation peut être de l'un des types suivants :
circle
: définit une zone comme un cercle avec un centre et un rayon.region
: définit une zone comme région.customArea
: définit une zone comme un polygone personnalisé.
Cercle
Si vous sélectionnez votre zone géographique sous forme de cercle, vous devez fournir un center
et un radius
. center
peut être une latitude et une longitude, ou l'ID du lieu du centre du cercle. Cette méthode permet un filtrage précis et exact en fonction de la région circulaire que vous avez définie.
center
:latLng
: latitude et longitude du centre du cercle. Les latitudes doivent être un nombre compris entre -90 et 90, inclus. La longitude doit être un nombre compris entre -180 et 180 (inclus).place
: ID du lieu correspondant au centre du cercle. Notez que seuls les lieux ponctuels sont acceptés. Cette chaîne doit commencer par le préfixeplaces/
.
radius
: rayon du cercle en mètres. Ce nombre doit être positif.
Région
Définissez votre zone comme une région en transmettant un ID de lieu au paramètre place
. L'ID de lieu représente une zone géographique (par exemple, une zone pouvant être représentée par un polygone). Par exemple, l'ID de lieu de Tampa, en Floride, est places/ChIJ4dG5s4K3wogRY7SWr4kTX6c
. Notez que tous les ID de lieu n'ont pas de géométrie bien définie. Dans ce cas, l'API Places Aggregate renvoie un code d'erreur 400 avec un message indiquant que la région n'est pas prise en charge. De plus, pour les régions géographiques complexes, les optimisations de traitement internes peuvent entraîner une légère surestimation de la superficie (jusqu'à 2 à 3 %) représentant la région.
Pour déterminer si un ID de lieu représente un type de lieu non compatible, transmettez l'ID de lieu dans une requête API Geocoding. La réponse inclut le tableau type
listant les types de lieux associés à l'ID de lieu, tels que locality
, neighborhood
ou country
. Un lieu sera refusé pour le filtrage par région si l'un de ses types correspond à cette liste.
Voici quelques exemples de types de lieux non acceptés :
establishment
indique généralement un lieu qui n'a pas encore été classé.intersection
: indique une intersection majeure, généralement sur deux routes principales.subpremise
: indique une entité adressable en dessous du niveau de l'établissement, comme un appartement, une unité ou une suite.
Zone personnalisée
Définit la zone d'un polygone personnalisé à l'aide de coordonnées de latitude et de longitude.
Vous pouvez accéder à https://geojson.io/ pour dessiner un polygone personnalisé et saisir ces coordonnées dans la requête. Un polygone doit comporter au moins quatre coordonnées, dont la première et la dernière sont identiques. Au moins trois des coordonnées fournies doivent être uniques.
Les coordonnées identiques consécutives seront traitées comme une seule coordonnée. Toutefois, les coordonnées en double non consécutives (autres que les coordonnées de début et de fin identiques requises) généreront une erreur.
De plus, les arêtes non adjacentes ne sont pas autorisées à se croiser, et les arêtes de longueur 180 degrés ne sont pas autorisées (c'est-à-dire que les sommets adjacents ne peuvent pas être antipodaux).
Exemple :
"coordinates":[ { "latitude":37.776, "longitude":-122.666 }, { "latitude":37.130, "longitude":-121.898 }, { "latitude":37.326, "longitude":-121.598 }, { "latitude":37.912, "longitude":-122.247 }, { "latitude":37.776, "longitude":-122.666 } ]
Filtre par type
Spécifie les types de lieux à inclure ou à exclure. Pour obtenir la liste des types de lieux principaux et secondaires acceptés par l'API Places Aggregate, consultez le Tableau A sous Types de lieux pour l'API Places (nouveau). Vous devez spécifier au moins un type includedTypes
ou includedPrimaryTypes
.
includedTypes
: liste des types de lieux inclus.excludedTypes
: liste des types de lieux exclus.includedPrimaryTypes
: liste des types de lieux principaux inclus.excludedPrimaryTypes
: liste des types de lieux principaux exclus.
Pour en savoir plus sur le fonctionnement des filtres de type et des types de lieux, consultez En savoir plus sur les filtres de type.
Paramètres facultatifs
Ces filtres sont facultatifs :
operatingStatus
: spécifie les états des lieux à inclure ou à exclure. Par défaut, le filtrage s'effectue paroperatingStatus: OPERATING_STATUS_OPERATIONAL
(une valeur spécifique).priceLevels
: spécifie les gammes de prix des lieux à inclure. Par défaut, aucun filtrage par niveau de prix n'est appliqué et tous les lieux (y compris ceux sans informations sur le niveau de prix) sont renvoyés.ratingFilter
: spécifie la plage de notes des lieux. Par défaut, aucun filtre n'est appliqué (toutes les classifications sont incluses dans les résultats).
Statut
Le filtre operatingStatus
vous permet de filtrer les résultats en fonction de l'état de fonctionnement, par exemple OPERATIONAL
ou TEMPORARILY_CLOSED
. Le comportement du filtre operatingStatus
est le suivant :
- Si aucun filtre n'a été fourni, seuls les lieux dont l'état de fonctionnement est
OPERATING_STATUS_OPERATIONAL
sont inclus dans les résultats. - Si un ou plusieurs filtres sont fournis, vous devez spécifier des valeurs d'état opérationnel valides (
OPERATING_STATUS_OPERATIONAL
,OPERATING_STATUS_PERMANENTLY_CLOSED
ouOPERATING_STATUS_TEMPORARILY_CLOSED
).
Niveau de prix
Le filtre priceLevels
vous permet de filtrer les lieux en fonction de leur niveau de prix. Les valeurs valides pour le niveau de prix sont les suivantes : PRICE_LEVEL_FREE
, PRICE_LEVEL_INEXPENSIVE
, PRICE_LEVEL_MODERATE
, PRICE_LEVEL_EXPENSIVE
et PRICE_LEVEL_VERY_EXPENSIVE
.
Le comportement du filtre priceLevels
est le suivant :
- Si aucun filtre n'est fourni : tous les lieux sont renvoyés, qu'un niveau de prix leur soit attribué ou non. Cela inclut les lieux sans informations sur le niveau de prix, qui peuvent ne pas être renvoyés lorsque vous filtrez par niveau de prix spécifique.
- Si un ou plusieurs filtres sont fournis : seuls les lieux correspondant au ou aux niveaux de prix spécifiés sont renvoyés.
Filtre "Note"
Filtre les lieux en fonction de leur note moyenne attribuée par les utilisateurs. Ces deux champs sont facultatifs. S'ils sont omis, ils incluront par défaut les lieux qui n'ont pas de note.
minRating
: note moyenne minimale des utilisateurs (entre 1 et 5).maxRating
: note moyenne maximale des utilisateurs (entre 1 et 5).
De plus, la valeur minRating
doit toujours être inférieure ou égale à la valeur maxRating
. Si minRating
est spécifié comme étant supérieur à maxRating
, une erreur INVALID_ARGUMENT
est renvoyée.