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 koroplet heksagonal.

Untuk memanggil fungsi PLACES_COUNT_PER_H3, gunakan klausa SQL FROM 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 aktif.
  • LINKED_DATASET_NAME: Nama set data Places Insights yang Anda ikuti (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 (Point, Linestring, atau Polygon) 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 merepresentasikan batas fisik sel H3.
count INTEGER Jumlah total yang tepat dari tempat operasional yang cocok dalam sel H3 tertentu ini, atau nol jika tidak ada tempat yang cocok.
sample_place_ids ARRAY<STRING> Array hingga 250 ID Tempat yang berada dalam sel ini, sehingga memungkinkan kueri kebenaran di lapangan 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 heksagon H3 yang berpotongan pada resolusi target Anda, dan menampilkan jumlah tempat yang tepat dan ID Tempat untuk setiap heksagon.

Contoh: Hitung jumlah toko bahan makanan dan toko serba ada yang dapat diakses pengguna kursi roda di Negara Bagian New York

Kueri ini menggabungkan toko serba ada dan toko bahan makanan yang beroperasi dan dapat diakses dengan 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 isian. Semakin gelap sel H3, semakin tinggi konsentrasi hasilnya:

Peta yang diisi untuk memfilter toko serba ada dan toko bahan makanan yang dapat diakses kursi roda di New York.

Untuk mengimpor data ke Looker Studio:

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

    Laporan default di Looker Studio.

  4. Pilih semua yang ada di halaman, lalu hapus.

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

  6. Di bagian Jenis diagram -> Penyiapan, konfigurasi kolom seperti yang ditunjukkan di bawah:

    Penyiapan peta panas di Looker Studio.

  7. Peta yang diisi akan muncul seperti di atas. Anda dapat memilih Jenis diagram -> Gaya untuk mengonfigurasi lebih lanjut tampilan peta.

Untuk mengetahui informasi selengkapnya tentang cara memvisualisasikan hasil Insight Tempat, lihat Memvisualisasikan hasil kueri.

Contoh: Mengueri jumlah POI historis menurut sel H3 dengan filter tertentu

Contoh ini menunjukkan cara membuat kueri jumlah POI historis di seluruh petak spasial H3 untuk bulan snapshot tertentu menggunakan filter snapshot_date. Area ini menentukan area penelusuran geografis menggunakan buffer di sekitar lokasi, dan menerapkan kriteria tambahan untuk jumlah konektor pengisi daya kendaraan listrik 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')]
    )
  )
);