Die PLACES_COUNT_PER_H3 Funktion aggregiert Daten zu Points of Interest (POI) in
standardisierten H3-Raumzellen mit einer bestimmten
Auflösung. Diese Funktion ist der empfohlene Weg für regionale Dichteanalysen, Wettbewerbsanalysen und die Erstellung von hexagonalen Choroplethen-Heatmaps.
Verwenden Sie zum Aufrufen der Funktion PLACES_COUNT_PER_H3 eine SQL-FROM-Klausel, da die Funktion eine Tabelle zurückgibt.
Syntax und Parameter
SELECT * FROM `PROJECT_NAME.LINKED_DATASET_NAME.PLACES_COUNT_PER_H3`( filters )
Parameter
PROJECT_NAME: Der Name Ihres Google Cloud-Projekts. Wenn Sie keinen Projektnamen angeben, wird standardmäßig das aktive Projekt für Ihre Abfrage verwendet.LINKED_DATASET_NAME: Der Name Ihres abonnierten Datasets für Places Insights, z. B.places_insights___us.filters(JSON): Ein JSON-Objekt, das mitJSON_OBJECTerstellt wurde und Schlüssel-Wert-Filter parameter enthält.
Erforderliche JSON-Filter
geography(GEOGRAPHY): Der zu indexierende Begrenzungsbereich (Punkt, Linienzug oder Polygon).h3_resolution(INTEGER): Die Auflösungsebene der H3-Zelle. Die unterstützten Werte liegen zwischen0und11.
Optionale JSON-Filter
- Zusätzliche Parameter wie
types,business_status,price_levelundmin_ratingzum Filtern der Orte, die in jeder Zelle gezählt werden. Die vollständige Liste der Filter parameter finden Sie hier.
Ausgabeschema der Tabelle
Die Funktion gibt eine BigQuery-Tabelle mit einer Zeile pro H3-Zellenindex zurück, der Ihre Zielgeometrie schneidet:
| Spaltenname | Datentyp | Beschreibung |
|---|---|---|
h3_cell_index |
STRING | Die eindeutige H3-Index-ID für die Zelle. |
geography |
GEOGRAPHY | Ein Polygon, das die physische Grenze der H3-Zelle darstellt. |
count |
INTEGER | Die genaue Gesamtzahl der übereinstimmenden Orte in dieser bestimmten H3-Zelle oder null, wenn keine Orte übereinstimmen. |
sample_place_ids |
ARRAY<STRING> | Ein Array mit bis zu 250 Orts-IDs, die sich in dieser Zelle befinden. So können Sie mit der Places API direkte Ground-Truth-Abfragen ausführen. |
Regionale POI-Dichte mit PLACES_COUNT_PER_H3 aggregieren
Die Funktion verarbeitet die in Ihren Filtern angegebene Begrenzungsgeografie, ermittelt alle sich überschneidenden H3-Hexagone mit der Zielauflösung und gibt die genaue Anzahl der Orte und Orts-IDs für jedes Hexagon zurück.
Beispiel: Anzahl der barrierefreien Lebensmittelgeschäfte und Convenience-Stores im Bundesstaat New York
Mit dieser Abfrage werden die Anzahl der barrierefreien Convenience-Stores und Lebensmittelgeschäfte im Bundesstaat New York mit einer H3-Auflösungsebene von 8 aggregiert. Die Grenzgeometrie des Bundesstaats New York wird dynamisch aus dem öffentlichen Dataset bigquery-public-data.geo_us_boundaries.states abgefragt.
-- 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;
Antwortformat
Die Abfrage ergibt eine Tabelle, in der die Zellen direkt den räumlichen Zählungen zugeordnet sind:

Beispiel: Anzahl der Orte pro H3-Zelle nach Marke filtern
Im folgenden Beispiel wird der Filter brand_ids verwendet, um
die Anzahl der Orte und Beispiel-Orts-IDs für bestimmte Marken wie Starbucks
"1413758728321880760" und Dunkin "1314981297593671295" abzurufen:
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'] ) );
H3-Ergebnisse dynamisch in Looker Studio visualisieren
Die folgenden Bilder zeigen Daten aus PLACES_COUNT_PER_H3 in Looker Studio als Karte mit ausgefüllten Bereichen. Je dunkler die H3-Zelle ist, desto höher ist die Konzentration der Ergebnisse:

So importieren Sie Ihre Daten in Looker Studio:
- Führen Sie die obige Funktion in BigQuery aus, um Ihre Ergebnisse zu generieren.
- Klicken Sie im Bereich „BigQuery-Ergebnisse“ auf Öffnen in -> Looker Studio. Ihre Ergebnisse werden automatisch in Looker Studio importiert.
Looker Studio erstellt eine Standardberichtseite und initialisiert sie mit einem Titel, einer Tabelle und einem Balkendiagramm der Ergebnisse.

Wählen Sie alles auf der Seite aus und löschen Sie es.
Klicken Sie auf Einfügen -> Karte mit ausgefüllten Bereichen , um Ihrem Bericht eine Karte mit ausgefüllten Bereichen hinzuzufügen.
Konfigurieren Sie unter Diagrammtypen -> Einrichtung die Felder wie unten dargestellt:

Die Karte mit ausgefüllten Bereichen wird wie oben dargestellt angezeigt. Optional können Sie Diagrammtypen -> Stil auswählen, um das Erscheinungsbild der Karte weiter zu konfigurieren.
Weitere Informationen zum Visualisieren von Places Insights-Ergebnissen finden Sie unter Abfrageergebnisse visualisieren.
Beispiel: Anzahl der POIs nach H3-Zelle mit bestimmten Filtern abfragen
In diesem Beispiel wird gezeigt, wie Sie mit dem Filter snapshot_date die Anzahl der POIs in einem H3-Raumraster für einen bestimmten Snapshot-Monat abfragen. Dabei wird ein geografischer Suchbereich mit einem Puffer um einen Standort definiert und zusätzliche Kriterien für die Anzahl der Ladestecker für Elektrofahrzeuge mit max_ev_charge_connector_count sowie bestimmte regular_opening_hours angewendet.
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')] ) ) );