Функция PLACES_COUNT_PER_GEO

Функция PLACES_COUNT_PER_GEO принимает массив географических областей для поиска и возвращает таблицу с количеством мест в каждой области. Например, если вы укажете в качестве области поиска массив почтовых индексов, ответ будет содержать таблицу с отдельной строкой для каждого почтового индекса.

Поскольку функция PLACES_COUNT_PER_GEO возвращает таблицу, вызовите ее с помощью предложения FROM.

  • Входные параметры:

    • Обязательный. Параметр фильтра geographies, указывающий область поиска. Параметр geographies принимает массив значений, определенных типом данных GEOGRAPHY BigQuery, который поддерживает точки, ломаные линии и многоугольники.

    • Необязательно. Дополнительные параметры фильтра для уточнения поиска.

  • Возврат:

    • Таблица, в которой каждая строка соответствует одному географическому региону. Таблица содержит столбцы geography (GEOGRAPHY), count (INT64) и place_ids (ARRAY<STRING>), где place_ids содержит до 250 идентификаторов мест для каждого географического региона.

Пример. Как рассчитать количество ресторанов в каждом округе Нью-Йорка

В этом примере создается таблица с количеством работающих ресторанов в каждом округе Нью-Йорка.

В этом примере используется общедоступный набор данных BigQuery United States Census Bureau Data, чтобы получить границы трех округов Нью-Йорка: Квинс, Кингс и Нью-Йорк. Границы каждого округа содержатся в столбце county_geom.

Затем в этом примере используется функция BigQuery ST_SIMPLIFY, которая возвращает упрощенную версию county_geom. Функция ST_SIMPLIFY заменяет почти прямые цепочки ребер одним длинным ребром.

DECLARE geos ARRAY<GEOGRAPHY>;

SET geos = (SELECT ARRAY_AGG(ST_SIMPLIFY(county_geom, 100))
            FROM `bigquery-public-data.geo_us_boundaries.counties`
            WHERE county_name IN ("Queens","Kings", "New York") AND state_fips_code = "36");

SELECT * FROM `PROJECT_NAME.places_insights___us.PLACES_COUNT_PER_GEO`(
  JSON_OBJECT(
      'geographies', geos,
      'types', ["restaurant"],
      'business_status', ["OPERATIONAL"]
      )
);

Пример. Расчет количества по округам с фильтрацией по бренду

В следующем примере используется фильтр brand_ids, чтобы получить количество мест и примеры идентификаторов мест для определенных брендов, таких как Starbucks "1413758728321880760":

DECLARE geos ARRAY<GEOGRAPHY>;

SET geos = (SELECT ARRAY_AGG(ST_SIMPLIFY(county_geom, 100))
            FROM `bigquery-public-data.geo_us_boundaries.counties`
            WHERE county_name IN ("Queens","Kings", "New York") AND state_fips_code = "36");

SELECT * FROM `PROJECT_NAME.places_insights___us.PLACES_COUNT_PER_GEO`(
  JSON_OBJECT(
      'geographies', geos,
      'brand_ids', ["1413758728321880760"], -- Filter for Starbucks
      'business_status', ["OPERATIONAL"]
      )
);

Как визуализировать результаты

На изображениях ниже показано, как эти данные отображаются в Looker Studio в виде заполненной карты, включая контур каждого округа:

Заполненная карта для фильтрации доступных для инвалидов-колясочников магазинов у дома и продуктовых магазинов в Нью-Йорке.

Чтобы импортировать данные в Looker Studio, выполните следующие действия:

  1. Запустите функцию выше, чтобы сгенерировать результаты.

  2. В результатах BigQuery нажмите Открыть в -> Looker Studio. Результаты автоматически импортируются в Looker Studio.

  3. Looker Studio создаст страницу отчета по умолчанию и добавит на нее заголовок, таблицу и гистограмму с результатами.

    Отчет по умолчанию в Looker Studio.

  4. Выделите все содержимое страницы и удалите его.

  5. Нажмите Вставка > Заполненная карта, чтобы добавить в отчет заполненную карту.

  6. В разделе Типы диаграмм -> Настройка настройте поля, как показано ниже:

    Настройка тепловой карты в Looker Studio.

  7. Заполненная карта выглядит так, как показано выше. При желании вы можете выбрать Типы диаграмм -> Стили, чтобы настроить внешний вид карты.

Подробнее о том, как визуализировать результаты запросов…