Menanyakan jumlah POI menurut H3

Fungsi PLACES_COUNT_PER_H3 menggabungkan data Tempat Menarik (POI) ke dalam sel petak spasial H3 standar pada resolusi yang ditentukan. Fungsi ini adalah jalur yang direkomendasikan untuk analisis kepadatan regional, pemetaan kompetitif, dan pembuatan peta panas choropleth heksagonal.

Untuk memanggil fungsi PLACES_COUNT_PER_H3, gunakan klausa FROM SQL karena fungsi ini menampilkan tabel.

Sintaksis dan parameter

SELECT * FROM `PROJECT_NAME.LINKED_DATASET_NAME.PLACES_COUNT_PER_H3`(
  filters
)

Parameter

  • PROJECT_NAME: Nama project Google Cloud Anda. Jika Anda tidak menentukan nama project, kueri Anda akan ditetapkan secara default ke project yang aktif.
  • LINKED_DATASET_NAME: Nama set data Places Insights yang Anda berlangganan (misalnya, places_insights___us).
  • filters (JSON): Objek JSON yang dibuat menggunakan JSON_OBJECT yang berisi parameter filter nilai kunci.

Filter JSON yang Diperlukan

  • geography (GEOGRAPHY): Area penelusuran pembatas (Titik, Linestring, atau Poligon) yang akan diindeks.
  • h3_resolution (INTEGER): Tingkat resolusi sel H3 (rentang nilai yang didukung dari 0 hingga 11).

Filter JSON Opsional

  • Parameter tambahan seperti types, business_status, price_level, dan min_rating untuk memfilter tempat yang dihitung dalam setiap sel. Lihat daftar lengkap parameter filter.

Skema tabel output

Fungsi ini menampilkan tabel BigQuery dengan satu baris per indeks sel H3 yang berpotongan dengan geometri target Anda:

Nama kolom Jenis data Deskripsi
h3_cell_index STRING ID indeks H3 unik untuk sel.
geography GEOGRAPHY Poligon yang mewakili batas fisik sel H3.
count INTEGER Jumlah persis total tempat operasional yang cocok dalam sel H3 spesifik ini, atau nol jika tidak ada tempat yang cocok.
sample_place_ids ARRAY<STRING> Array yang berisi hingga 250 ID Tempat yang terletak di dalam sel ini, sehingga memungkinkan kueri kebenaran nyata langsung menggunakan Places API.

Menggabungkan kepadatan POI regional menggunakan PLACES_COUNT_PER_H3

Fungsi ini memproses geografi pembatas yang ditentukan dalam filter Anda, mengidentifikasi semua segi enam H3 yang berpotongan pada resolusi target Anda, dan menampilkan jumlah tempat dan ID Tempat yang tepat untuk setiap segi enam.

Contoh: Menghitung toko kelontong dan minimarket yang dapat diakses pengguna kursi roda di Negara Bagian New York

Kueri ini menggabungkan toko kelontong dan minimarket yang beroperasi dan dapat diakses pengguna kursi roda di Negara Bagian New York menggunakan tingkat resolusi H3 8. Geometri batas Negara Bagian New York dikueri secara dinamis dari set data publik 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 respons

Kueri menghasilkan tabel baris demi baris yang memetakan sel langsung ke jumlah spasial:

Hasil BigQuery untuk kueri H3.

Contoh: Menghitung tempat per sel H3 yang difilter menurut merek

Contoh berikut menggunakan filter brand_ids untuk mengambil jumlah tempat dan contoh ID tempat untuk merek tertentu, seperti Starbucks "1413758728321880760" dan 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']
    )
);

Memvisualisasikan hasil H3 secara dinamis di Looker Studio

Gambar berikut menampilkan data dari PLACES_COUNT_PER_H3 yang ditampilkan di Looker Studio sebagai peta yang diisi. Makin gelap sel H3, makin tinggi konsentrasi hasilnya:

Peta terisi untuk memfilter minimarket dan toko kelontong yang dapat diakses kursi roda di New York.

Untuk mengimpor data ke Looker Studio:

  1. Jalankan fungsi di atas di BigQuery untuk menghasilkan hasil Anda.
  2. Di panel hasil BigQuery, klik Open in -> Looker Studio. Hasil Anda akan otomatis diimpor ke Looker Studio.
  3. Looker Studio membuat halaman laporan default dan menginisialisasinya dengan judul, tabel, dan grafik batang dari hasil.

    Laporan default di Looker Studio.

  4. Pilih semuanya di halaman, lalu hapus.

  5. Klik Sisipkan -> Peta bidang untuk menambahkan peta bidang ke laporan Anda.

  6. Di bagian Chart types -> Setup, konfigurasikan kolom seperti yang ditunjukkan di bawah:

    Penyiapan peta panas di Looker Studio.

  7. Peta yang terisi akan muncul seperti di atas. Anda dapat memilih Chart types -> Style untuk mengonfigurasi tampilan peta lebih lanjut.

Untuk informasi selengkapnya tentang cara memvisualisasikan hasil Places Insights, lihat Memvisualisasikan hasil kueri.

Contoh: Membuat kueri jumlah POI historis berdasarkan sel H3 dengan filter tertentu

Contoh ini menunjukkan cara mengkueri jumlah POI historis di seluruh petak spasial H3 untuk bulan snapshot tertentu menggunakan filter snapshot_date. Metode ini menentukan area penelusuran geografis menggunakan buffer di sekitar lokasi, dan menerapkan kriteria tambahan untuk jumlah konektor pengisian daya EV menggunakan max_ev_charge_connector_count bersama dengan regular_opening_hours tertentu.

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')]
    )
  )
);