La fonction PLACES_COUNT_PER_H3 regroupe les données de points d'intérêt (POI) 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 l'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 de délimitation (point, chaîne de lignes ou polygone) à indexer.h3_resolution(INTEGER) : niveau de résolution de la cellule H3 (les valeurs acceptées sont comprises entre0et11).
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 qui croise votre géométrie cible :
| Nom de la colonne | Type de données | Description |
|---|---|---|
h3_cell_index |
STRING | Identifiant d'index H3 unique de la cellule. |
geography |
GEOGRAPHY | Un polygone représentant la limite physique de la cellule H3. |
count |
INTEGER | Nombre exact total de lieux opérationnels correspondants dans cette cellule H3 spécifique, ou zéro si aucun lieu ne correspond. |
sample_place_ids |
ARRAY<STRING> | Un tableau contenant jusqu'à 250 ID de lieu 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éger la densité régionale des POI à l'aide de PLACES_COUNT_PER_H3
La fonction traite la zone géographique de délimitation spécifiée dans vos filtres, identifie tous les hexagones H3 qui se croisent à la résolution cible, puis renvoie le nombre exact de lieux et les ID de lieu pour chaque hexagone.
Exemple : Compter les épiceries et supérettes accessibles en fauteuil roulant dans l'État de New York
Cette requête regroupe les supérettes et les épiceries opérationnelles et accessibles en fauteuil roulant dans l'État de New York, en utilisant un niveau de résolution H3 de 8. La géométrie des limites 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és par marque
L'exemple suivant utilise le filtre brand_ids pour récupérer le nombre de lieux et des exemples d'ID de lieu 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 la forme d'une carte choroplèthe. Plus la cellule H3 est sombre, 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 et supprimez-le.
Cliquez sur Insérer -> Carte géographique pour ajouter une carte géographique à votre rapport.
Sous Types de graphiques -> Configuration, configurez les champs comme indiqué ci-dessous :

La carte choroplèthe s'affiche comme ci-dessus. Vous pouvez éventuellement sélectionner Types de graphiques -> Style pour configurer davantage l'apparence de la carte.
Pour en savoir plus sur la visualisation des résultats de Places Insights, consultez Visualiser les résultats de requête.
Exemple : Interroger l'historique du nombre de POI par cellule H3 avec des filtres spécifiques
Cet exemple montre comment interroger le nombre de points d'intérêt historiques sur une grille spatiale H3 pour un mois d'instantané spécifique à l'aide du filtre snapshot_date. Elle définit une zone de recherche géographique à l'aide d'une zone tampon autour d'un emplacement, et applique des critères supplémentaires pour le nombre de connecteurs de recharge de bornes pour véhicules électriques à l'aide de max_ev_charge_connector_count et de 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')] ) ) );