La fonction PLACES_COUNT_PER_H3 agrège les données des points d'intérêt dans des cellules de grille spatiale H3 standardisées à une résolution spécifiée. Cette fonction est la méthode recommandée pour l'analyse de la densité régionale, la cartographie concurrentielle et la génération de cartes de densité choroplèthes hexagonales.
Pour appeler la fonction PLACES_COUNT_PER_H3, utilisez une clause SQL FROM, car la fonction renvoie une table.
Syntaxe et paramètres
SELECT * FROM `PROJECT_NAME.LINKED_DATASET_NAME.PLACES_COUNT_PER_H3`( filters )
Paramètres
PROJECT_NAME: nom de votre projet Google Cloud. Si vous ne spécifiez pas de nom de projet, votre requête sera définie par défaut sur le projet actif.LINKED_DATASET_NAME: nom de votre ensemble de données Places Insights auquel vous êtes abonné (par exemple,places_insights___us).filters(JSON) : objet JSON construit à l'aide deJSON_OBJECTcontenant des paramètres de filtre clé-valeur.
Filtres JSON obligatoires
geography(GEOGRAPHY) : zone de recherche délimitée (point, ligne ou polygone) à indexer.h3_resolution(INTEGER) : niveau de résolution de la cellule H3 (les valeurs acceptées vont de0à11).
Filtres JSON facultatifs
- Paramètres supplémentaires tels que
types,business_status,price_leveletmin_ratingpour filtrer les lieux comptabilisés dans chaque cellule. Consultez la liste complète des paramètres de filtre.
Schéma de la table de sortie
La fonction renvoie une table BigQuery avec une ligne par index de cellule H3 croisant votre géométrie cible :
| Nom de la colonne | Type de données | Description |
|---|---|---|
h3_cell_index |
STRING | Identifiant unique de l'index H3 pour la cellule. |
geography |
GEOGRAPHY | Polygone représentant la limite physique de la cellule H3. |
count |
INTEGER | Nombre total exact de lieux opérationnels correspondants dans cette cellule H3 spécifique, ou zéro si aucun lieu ne correspond. |
sample_place_ids |
ARRAY<STRING> | Tableau contenant jusqu'à 250 ID de lieux situés dans cette cellule, ce qui permet d'effectuer des requêtes de vérité terrain directes à l'aide de l'API Places. |
Agréguer la densité régionale des points d'intérêt à l'aide de PLACES_COUNT_PER_H3
La fonction traite la géographie délimitée spécifiée dans vos filtres, identifie tous les hexagones H3 qui se croisent à votre résolution cible et renvoie le nombre exact de lieux et les ID de lieux pour chaque hexagone.
Exemple : Compter les épiceries et les magasins de proximité accessibles en fauteuil roulant dans l'État de New York
Cette requête agrège les magasins de proximité et les épiceries opérationnels et accessibles en fauteuil roulant dans l'État de New York à l'aide d'un niveau de résolution H3 de 8. La géométrie de limite de l'État de New York est interrogée de manière dynamique à partir de l'ensemble de données public bigquery-public-data.geo_us_boundaries.states.
-- Query POI count per H3 cell intersecting the New York State polygon boundary SELECT * FROM `PROJECT_NAME.places_insights___us.PLACES_COUNT_PER_H3`( JSON_OBJECT( 'geography', ( -- Dynamically retrieve the boundary geography for New York State SELECT state_geom FROM `bigquery-public-data.geo_us_boundaries.states` WHERE state = 'NY' LIMIT 1 ), 'types', ['grocery_store', 'convenience_store'], 'business_status', ['OPERATIONAL'], 'h3_resolution', 8, 'wheelchair_accessible_entrance', TRUE ) ) ORDER BY count DESC;
Format de réponse
La requête génère une table ligne par ligne qui mappe directement les cellules aux nombres spatiaux :

Exemple : Compter les lieux par cellule H3 filtrée par marque
L'exemple suivant utilise le filtre brand_ids pour récupérer
le nombre de lieux et des exemples d'ID de lieux pour des marques spécifiques, telles que Starbucks
"1413758728321880760" et Dunkin "1314981297593671295" :
DECLARE geo GEOGRAPHY; -- Get the geography for New York City. SET geo = (SELECT geometry FROM `bigquery-public-data.overture_maps.division_area` WHERE country = 'US' AND subtype = 'locality' AND names.primary = 'New York' LIMIT 1); SELECT * FROM `PROJECT_NAME.places_insights___us.PLACES_COUNT_PER_H3`( JSON_OBJECT( 'geography', geo, 'h3_resolution', 8, 'brand_ids', ["1413758728321880760", "1314981297593671295"], 'business_status', ['OPERATIONAL'] ) );
Visualiser les résultats H3 de manière dynamique dans Looker Studio
Les images suivantes montrent les données de PLACES_COUNT_PER_H3 affichées dans Looker Studio sous forme de carte remplie. Plus la cellule H3 est foncée, plus la concentration de résultats est élevée :

Pour importer vos données dans Looker Studio :
- Exécutez la fonction ci-dessus dans BigQuery pour générer vos résultats.
- Dans le volet des résultats BigQuery, cliquez sur Ouvrir dans -> Looker Studio. Vos résultats sont automatiquement importés dans Looker Studio.
Looker Studio crée une page de rapport par défaut et l'initialise avec un titre, un tableau et un graphique à barres des résultats.

Sélectionnez tout le contenu de la page, puis supprimez-le.
Cliquez sur Insérer -> Carte remplie pour ajouter une carte remplie à votre rapport.
Sous Types de graphiques -> Configuration, configurez les champs comme indiqué ci-dessous :

La carte remplie s'affiche comme ci-dessus. Vous pouvez également sélectionner Types de graphiques -> Style pour configurer davantage l'apparence de la carte.
Pour en savoir plus sur la visualisation des résultats Places Insights, consultez Visualiser les résultats de la requête.
Exemple : Interroger le nombre historique de points d'intérêt par cellule H3 avec des filtres spécifiques
Cet exemple montre comment interroger le nombre historique de points d'intérêt dans une grille spatiale H3 pour un mois d'instantané spécifique à l'aide du filtre snapshot_date. Il définit une zone de recherche géographique à l'aide d'une zone tampon autour d'un lieu et applique des critères supplémentaires pour le nombre de connecteurs de recharge pour véhicules électriques à l'aide de max_ev_charge_connector_count avec des regular_opening_hours spécifiques.
SELECT * FROM `PROJECT_NAME.places_insights___us.PLACES_COUNT_PER_H3`( JSON_OBJECT( 'geography', ST_BUFFER(ST_GEOGPOINT(-74.0060, 40.7128), 5000), -- 5km radius around NYC 'h3_resolution', 8, 'business_status', ['OPERATIONAL'], 'snapshot_date', '2026-01', -- Target snapshot month (YYYY-MM) 'max_ev_charge_connector_count', 3, -- Maximum connector count 'regular_opening_hours', JSON_OBJECT( 'monday', [JSON_OBJECT('start_time', '09:00', 'end_time', '12:00')] ) ) );