Funkcja PLACES_COUNT_PER_H3 agreguje dane o ciekawych miejscach w
standardowych komórkach siatki przestrzennej H3 o określonej
rozdzielczości. Ta funkcja jest zalecaną ścieżką do analizy gęstości regionalnej, mapowania konkurencji i generowania heksagonalnych map termicznych.
Aby wywołać funkcję PLACES_COUNT_PER_H3, użyj klauzuli SQL FROM, ponieważ funkcja zwraca tabelę.
Składnia i parametry
SELECT * FROM `PROJECT_NAME.LINKED_DATASET_NAME.PLACES_COUNT_PER_H3`( filters )
Parametry
PROJECT_NAME: nazwa projektu w chmurze Google Cloud. Jeśli nie określisz nazwy projektu, zapytanie domyślnie będzie dotyczyć aktywnego projektu.LINKED_DATASET_NAME: nazwa subskrybowanego zbioru danych Places Insights (np.places_insights___us).filters(JSON): Obiekt JSON utworzony za pomocą funkcjiJSON_OBJECTzawierający parametry filtra w postaci par klucz-wartość.
Wymagane filtry JSON
geography(GEOGRAPHY): obszar wyszukiwania (punkt, linia lub wielokąt), który ma zostać zindeksowany.h3_resolution(LICZBA CAŁKOWITA): poziom rozdzielczości komórki H3 (obsługiwane wartości to od0do11).
Opcjonalne filtry JSON
- Dodatkowe parametry, takie jak
types,business_status,price_levelimin_rating, które umożliwiają filtrowanie miejsc zliczanych w każdej komórce. Zobacz pełną listę parametrów filtra.
Schemat tabeli wyjściowej
Funkcja zwraca tabelę BigQuery z 1 wierszem na każdy indeks komórki H3, który przecina docelową geometrię:
| Nazwa kolumny | Typ danych | Opis |
|---|---|---|
h3_cell_index |
STRING | Unikalny identyfikator indeksu H3 komórki. |
geography |
GEOGRAPHY | Wielokąt reprezentujący fizyczną granicę komórki H3. |
count |
INTEGER | Łączna dokładna liczba pasujących miejsc w tej konkretnej komórce H3 lub zero, jeśli nie ma pasujących miejsc. |
sample_place_ids |
ARRAY<STRING> | Tablica zawierająca maksymalnie 250 identyfikatorów miejsc znajdujących się w tej komórce, co umożliwia bezpośrednie wysyłanie zapytań do danych rzeczywistych za pomocą interfejsu Places API. |
Agregowanie gęstości regionalnej ciekawych miejsc za pomocą funkcji PLACES_COUNT_PER_H3
Funkcja przetwarza geometrię graniczną określoną w filtrach, identyfikuje wszystkie przecinające się sześciokąty H3 w docelowej rozdzielczości i zwraca dokładną liczbę miejsc oraz identyfikatory miejsc dla każdego sześciokąta.
Przykład: zliczanie sklepów spożywczych i ogólnospożywczych w stanie Nowy Jork, do których można wjechać na wózku inwalidzkim
To zapytanie agreguje działające sklepy ogólnospożywcze i spożywcze w stanie Nowy Jork, do których można wjechać na wózku inwalidzkim, przy użyciu poziomu rozdzielczości H3 wynoszącego 8. Geometria graniczna stanu Nowy Jork jest dynamicznie pobierana z publicznego zbioru danych 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 odpowiedzi
Zapytanie zwraca tabelę, w której wiersze są bezpośrednio powiązane z liczbą miejsc w danym obszarze:

Przykład: zliczanie miejsc w komórce H3 filtrowanych według marki
W tym przykładzie używamy filtra brand_ids, aby pobrać
liczbę miejsc i przykładowe identyfikatory miejsc dla konkretnych marek, takich jak Starbucks
"1413758728321880760" i 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'] ) );
Dynamiczne wizualizowanie wyników H3 w Looker Studio
Poniższe obrazy przedstawiają dane z funkcji PLACES_COUNT_PER_H3 wyświetlane w Looker Studio jako mapa wypełniona. Im ciemniejsza komórka H3, tym większe zagęszczenie wyników:

Aby zaimportować dane do Looker Studio:
- Uruchom powyższą funkcję w BigQuery, aby wygenerować wyniki.
- W panelu wyników BigQuery kliknij Otwórz w -> Looker Studio. Wyniki zostaną automatycznie zaimportowane do Looker Studio.
Looker Studio utworzy domyślną stronę raportu i zainicjuje ją tytułem, tabelą i wykresem słupkowym wyników.

Zaznacz wszystko na stronie i usuń.
Aby dodać do raportu mapę wypełnioną, kliknij Wstaw -> Mapa wypełniona.
W sekcji Typy wykresów -> Konfiguracja skonfiguruj pola w sposób pokazany poniżej:

Mapa wypełniona pojawi się jak powyżej. Opcjonalnie możesz kliknąć Typy wykresów -> Styl , aby dodatkowo skonfigurować wygląd mapy.
Więcej informacji o wizualizacji wyników Statystyk miejsc znajdziesz w artykule Wizualizacja wyników zapytań.
Przykład: wysyłanie zapytań o historyczną liczbę ciekawych miejsc według komórki H3 z określonymi filtrami
Ten przykład pokazuje, jak wysyłać zapytania o historyczną liczbę ciekawych miejsc w siatce przestrzennej H3 w przypadku konkretnego miesiąca zrzutu za pomocą filtra snapshot_date. Określa on geograficzny obszar wyszukiwania za pomocą bufora wokół lokalizacji i stosuje dodatkowe kryteria dotyczące liczby złączy ładowania pojazdów elektrycznych za pomocą parametru max_ev_charge_connector_count wraz z konkretnymi regular_opening_hours.
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')] ) ) );