Функция PLACES_COUNT_PER_GEO принимает массив географических областей для поиска и возвращает таблицу с количеством мест в каждой области. Например, если вы укажете в качестве области поиска массив почтовых индексов, ответ будет содержать таблицу с отдельной строкой для каждого почтового индекса.
Поскольку функция PLACES_COUNT_PER_GEO возвращает таблицу, вызовите ее с помощью предложения FROM.
Входные параметры:
Обязательный. Параметр фильтра
geographies, указывающий область поиска. Параметрgeographiesпринимает массив значений, определенных типом данныхGEOGRAPHYBigQuery, который поддерживает точки, ломаные линии и многоугольники.Необязательно. Дополнительные параметры фильтра для уточнения поиска.
Возврат:
- Таблица, в которой каждая строка соответствует одному географическому региону. Таблица содержит столбцы
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, выполните следующие действия:
Запустите функцию выше, чтобы сгенерировать результаты.
В результатах BigQuery нажмите Открыть в -> Looker Studio. Результаты автоматически импортируются в Looker Studio.
Looker Studio создаст страницу отчета по умолчанию и добавит на нее заголовок, таблицу и гистограмму с результатами.

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

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