Số lượng địa điểm yêu thích theo H3

Hàm PLACES_COUNT_PER_H3 tổng hợp dữ liệu về Địa điểm yêu thích (POI) thành các ô lưới không gian H3 được chuẩn hoá ở một độ phân giải cụ thể. Hàm này là phương pháp được đề xuất để phân tích mật độ theo khu vực, lập bản đồ cạnh tranh và tạo bản đồ nhiệt chuyên đề lục giác.

Để gọi hàm PLACES_COUNT_PER_H3, hãy sử dụng mệnh đề FROM trong SQL vì hàm này trả về một bảng.

Cú pháp và tham số

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

Thông số

  • PROJECT_NAME: Tên dự án trên đám mây của bạn trên Google Cloud. Nếu bạn không chỉ định tên dự án, thì truy vấn của bạn sẽ mặc định là dự án đang hoạt động.
  • LINKED_DATASET_NAME: Tên của tập dữ liệu Thông tin chi tiết về địa điểm mà bạn đã đăng ký (ví dụ: places_insights___us).
  • filters (JSON): Một đối tượng JSON được tạo bằng JSON_OBJECT chứa các tham số bộ lọc khoá-giá trị.

Bộ lọc JSON bắt buộc

  • geography (GEOGRAPHY): Khu vực tìm kiếm giới hạn (Điểm, Chuỗi đường hoặc Đa giác) cần lập chỉ mục.
  • h3_resolution (INTEGER): Cấp độ phân giải của ô H3 (các giá trị được hỗ trợ nằm trong khoảng từ 0 đến 11).

Bộ lọc JSON không bắt buộc

Giản đồ bảng đầu ra

Hàm này trả về một bảng BigQuery với một hàng cho mỗi chỉ mục ô H3 giao nhau với hình học mục tiêu của bạn:

Tên cột Loại dữ liệu Mô tả
h3_cell_index STRING Giá trị nhận dạng duy nhất của chỉ mục H3 cho ô.
geography GEOGRAPHY Một đa giác đại diện cho ranh giới vật lý của ô H3.
count INTEGER Tổng số chính xác các địa điểm đang hoạt động phù hợp trong ô H3 cụ thể này hoặc bằng 0 nếu không có địa điểm nào phù hợp.
sample_place_ids ARRAY<STRING> Một mảng gồm tối đa 250 Mã địa điểm nằm trong ô này, cho phép truy vấn trực tiếp thông tin thực tế bằng Places API.

Tổng hợp mật độ địa điểm yêu thích theo khu vực bằng PLACES_COUNT_PER_H3

Hàm này xử lý ranh giới địa lý được chỉ định trong bộ lọc, xác định tất cả các hình lục giác H3 giao nhau ở độ phân giải mục tiêu và trả về số lượng địa điểm chính xác cũng như Mã địa điểm cho mỗi hình lục giác.

Ví dụ: Đếm số cửa hàng tạp hoá và cửa hàng tiện lợi có lối vào cho xe lăn ở bang New York

Truy vấn này tổng hợp các cửa hàng tiện lợi và cửa hàng tạp hoá đang hoạt động, có lối đi cho xe lăn ở Bang New York bằng cách sử dụng độ phân giải H3 là 8. Hình học ranh giới của Tiểu bang New York được truy vấn linh động từ tập dữ liệu công khai 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;

Định dạng của phản hồi

Truy vấn này tạo ra một bảng theo từng hàng, liên kết trực tiếp các ô với số lượng không gian:

Kết quả BigQuery cho truy vấn H3.

Ví dụ: Đếm số địa điểm theo ô H3 được lọc theo thương hiệu

Ví dụ sau đây sử dụng bộ lọc brand_ids để truy xuất số lượng địa điểm và mã địa điểm mẫu cho các thương hiệu cụ thể, chẳng hạn như Starbucks "1413758728321880760" và 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']
    )
);

Trực quan hoá kết quả H3 một cách linh động trong Looker Studio

Hình ảnh sau đây cho thấy dữ liệu từ PLACES_COUNT_PER_H3 được hiển thị trong Looker Studio dưới dạng bản đồ được tô màu. Ô H3 càng tối thì nồng độ kết quả càng cao:

Bản đồ tô màu nền để lọc các cửa hàng tiện lợi và cửa hàng tạp hoá có lối đi cho xe lăn ở New York.

Cách nhập dữ liệu vào Looker Studio:

  1. Chạy hàm trên trong BigQuery để tạo kết quả.
  2. Trong ngăn kết quả BigQuery, hãy nhấp vào Mở trong -> Looker Studio. Kết quả của bạn sẽ tự động được nhập vào Looker Studio.
  3. Looker Studio sẽ tạo một trang báo cáo mặc định và khởi chạy trang đó bằng tiêu đề, bảng và biểu đồ thanh của kết quả.

    Báo cáo mặc định trong Looker Studio.

  4. Chọn mọi nội dung trên trang rồi xoá.

  5. Nhấp vào Chèn -> Bản đồ tô màu để thêm bản đồ tô màu vào báo cáo.

  6. Trong phần Loại biểu đồ -> Thiết lập, hãy định cấu hình các trường như bên dưới:

    Thiết lập bản đồ nhiệt trong Looker Studio.

  7. Bản đồ đã điền sẽ xuất hiện như trên. Bạn có thể chọn Loại biểu đồ -> Kiểu để định cấu hình thêm cho giao diện của bản đồ.

Để biết thêm thông tin về cách trực quan hoá kết quả của Thông tin chi tiết về địa điểm, hãy xem bài viết Trực quan hoá kết quả truy vấn.

Ví dụ: Truy vấn số lượng địa điểm yêu thích trước đây theo ô H3 bằng các bộ lọc cụ thể

Ví dụ này minh hoạ cách truy vấn số lượng địa điểm yêu thích trước đây trên lưới không gian H3 cho một tháng tổng quan cụ thể bằng bộ lọc snapshot_date. Truy vấn này xác định một khu vực tìm kiếm địa lý bằng cách sử dụng vùng đệm xung quanh một vị trí và áp dụng các tiêu chí bổ sung cho số lượng đầu nối sạc xe điện bằng cách sử dụng max_ev_charge_connector_count cùng với regular_opening_hours cụ thể.

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