H3'e göre sorgu ÖY sayısı

PLACES_COUNT_PER_H3 işlevi, önemli yer (ÖY) verilerini belirli bir çözünürlükte standartlaştırılmış H3 uzamsal ızgara hücreleri halinde birleştirir. Bu işlev; bölgesel yoğunluk analizi, rekabet haritalandırması ve altıgen koroplet ısı haritaları oluşturmak için önerilen yöntemdir.

PLACES_COUNT_PER_H3 işlevini çağırmak için SQL FROM yan tümcesini kullanın. Bu işlev bir tablo döndürür.

Söz dizimi ve parametreler

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

Parametreler

  • PROJECT_NAME: Google Cloud projenizin adı. Proje adı belirtmezseniz sorgunuz varsayılan olarak etkin projeyi kullanır.
  • LINKED_DATASET_NAME: Abone olduğunuz Places Insights veri kümesinin adı (ör. places_insights___us).
  • filters (JSON): Anahtar/değer filtresi parametrelerini içeren JSON_OBJECT kullanılarak oluşturulmuş bir JSON nesnesi.

Gerekli JSON Filtreleri

  • geography (GEOGRAPHY): Dizine eklenecek sınırlayıcı arama alanı (Nokta, Çizgi dizesi veya Çokgen).
  • h3_resolution (INTEGER): H3 hücre çözünürlük düzeyi (desteklenen değerler 0 ile 11 arasındadır).

İsteğe Bağlı JSON Filtreleri

Çıkış tablosu şeması

İşlev, hedef geometrinizle kesişen her H3 hücre dizini için bir satır içeren bir BigQuery tablosu döndürür:

Sütun adı Veri türü Açıklama
h3_cell_index STRING Hücrenin benzersiz H3 dizini tanımlayıcısı.
geography GEOGRAPHY H3 hücresinin fiziksel sınırını temsil eden bir poligon.
count INTEGER Bu belirli H3 hücresindeki eşleşen faal yerlerin toplam tam sayısı veya eşleşen yer yoksa sıfır.
sample_place_ids ARRAY<STRING> Bu hücrede bulunan ve Places API kullanılarak doğrudan gerçek doğru sorguları yapılabilen en fazla 250 yer kimliğinden oluşan bir dizi.

PLACES_COUNT_PER_H3 kullanarak bölgesel ÖY yoğunluğunu toplama

İşlev, filtrelerinizde belirtilen coğrafi sınırları işler, hedef çözünürlüğünüzde kesişen tüm H3 altıgenlerini tanımlar ve her altıgen için tam yer sayılarını ve yer kimliklerini döndürür.

Örnek: New York eyaletinde tekerlekli sandalye kullanıcılarına uygun marketlerin sayısını öğrenme

Bu sorgu, New York eyaletindeki faal, tekerlekli sandalye kullanıcılarına uygun büfeleri ve marketleri 8. seviye H3 çözünürlüğü kullanarak bir araya getirir. New York eyaletinin sınır geometrisi, bigquery-public-data.geo_us_boundaries.states herkese açık veri kümesinden dinamik olarak sorgulanır.

-- 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;

Yanıt biçimi

Sorgu, hücreleri doğrudan mekansal sayımlarla eşleyen satır satır bir tablo oluşturur:

H3 sorgusu için BigQuery sonuçları.

Örnek: Markaya göre filtrelenmiş H3 hücresi başına yer sayısını hesaplama

Aşağıdaki örnekte, Starbucks "1413758728321880760" ve Dunkin "1314981297593671295" gibi belirli markaların yer sayılarını ve örnek yer kimliklerini almak için brand_ids filtresi kullanılmaktadır:

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

Looker Studio'da H3 sonuçlarını dinamik olarak görselleştirme

Aşağıdaki resimlerde, Looker Studio'da dolgulu harita olarak gösterilen PLACES_COUNT_PER_H3 verileri yer almaktadır. H3 hücresi ne kadar koyuysa sonuçların yoğunluğu o kadar yüksektir:

New York'ta tekerlekli sandalye kullanıcılarına uygun bakkal ve marketleri filtrelemek için doldurulmuş harita.

Verilerinizi Looker Studio'ya aktarmak için:

  1. Sonuçlarınızı oluşturmak için yukarıdaki işlevi BigQuery'de çalıştırın.
  2. BigQuery sonuçlar panelinde Şurada aç -> Looker Studio'yu tıklayın. Sonuçlarınız otomatik olarak Looker Studio'ya aktarılır.
  3. Looker Studio, varsayılan bir rapor sayfası oluşturur ve bu sayfayı sonuçların başlığı, tablosu ve çubuk grafiğiyle başlatır.

    Looker Studio'daki varsayılan rapor.

  4. Sayfadaki her şeyi seçip silin.

  5. Raporunuza dolu harita eklemek için Ekle -> Dolu harita'yı tıklayın.

  6. Grafik türleri -> Kurulum bölümünde alanları aşağıdaki gibi yapılandırın:

    Looker Studio'da ısı haritası oluşturma

  7. Dolu harita yukarıdaki gibi görünür. Haritanın görünümünü daha ayrıntılı şekilde yapılandırmak için isteğe bağlı olarak Grafik türleri -> Stil'i seçebilirsiniz.

Places Insights sonuçlarını görselleştirme hakkında daha fazla bilgi için Sorgu sonuçlarını görselleştirme başlıklı makaleyi inceleyin.

Örnek: Belirli filtrelerle H3 hücresine göre geçmiş ÖY sayılarını sorgulama

Bu örnekte, snapshot_date filtresi kullanılarak belirli bir anlık görüntü ayı için H3 uzamsal ızgarasındaki geçmiş ÖY sayılarının nasıl sorgulanacağı gösterilmektedir. Bu sorgu, bir konumun etrafında tampon bölge kullanarak coğrafi bir arama alanı tanımlar ve belirli regular_opening_hours ile birlikte max_ev_charge_connector_count kullanarak EV şarj cihazı konnektörü sayıları için ek ölçütler uygular.

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