science This product or feature is in Experimental (pre-GA). Pre-GA products and features might have limited support, and changes to pre-GA products and features might not be compatible with other pre-GA versions. Pre-GA Offerings are covered by the Google Maps Platform Service Specific Terms. For more information, see the launch stage descriptions. Sign up to test Places Insights!
Stay organized with collections
Save and categorize content based on your preferences.
The PLACES_COUNT_PER_GEO function takes an array of geographic areas to search
and returns a table of places counts per area. For example, if you specify an
array of zip codes as the search area, the response contains a table with a
separate row for each zip code.
Because the PLACES_COUNT_PER_GEO function returns a table, call it using
a FROM clause.
Input parameters:
Required: The geographiesfilter parameter that specifies the search area. The
geographies parameter takes an array of values defined by the BigQuery
GEOGRAPHY
data type, which supports points, linestrings, and polygons.
Optional: Additional filter parameters to refine your
search.
Returns:
A table with one row per geographic area. The table contains the columns
geography (GEOGRAPHY), count (INT64), and sample_place_ids
(ARRAY<STRING>) where sample_place_ids contains up to 250 place IDs for
each geographic area.
Example: Calculate the number of restaurants in each county of New York City
This example generates a table of counts of operational restaurants per county
in New York City.
This example uses the United States Census Bureau
Data
BigQuery public dataset to get
the boundaries for the three counties in New York City: "Queens","Kings", "New
York". The boundaries of each county are contained in the county_geom column.
This example then uses the BigQuery
ST_SIMPLIFY
function to return a simplified version of county_geom. The ST_SIMPLIFY
function replaces nearly straight chains of edges with a single long edge.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-07-25 UTC."],[],[],null,["The `PLACES_COUNT_PER_GEO` function takes an array of geographic areas to search\nand returns a table of places counts per area. For example, if you specify an\narray of zip codes as the search area, the response contains a table with a\nseparate row for each zip code.\n\nBecause the `PLACES_COUNT_PER_GEO` function returns a table, call it using\na `FROM` clause.\n\n- Input parameters:\n\n - **Required** : The `geographies`\n [filter parameter](/maps/documentation/placesinsights/experimental/filter-params) that specifies the search area. The\n `geographies` parameter takes an array of values defined by the BigQuery\n [`GEOGRAPHY`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#geography_type)\n data type, which supports points, linestrings, and polygons.\n\n - **Optional** : Additional [filter](/maps/documentation/placesinsights/experimental/filter-params) parameters to refine your\n search.\n\n- Returns:\n\n - A table with one row per geographic area. The table contains the columns `geography` (`GEOGRAPHY`) and `count` (`INT64`).\n\nExample: Calculate the number of restaurants in each county of New York City\n\nThis example generates a table of counts of operational restaurants per county\nin New York City.\n| **Note:** Because the response table contains a `geographies` field, you can visualize it using tools that support BigQuery `GEOGRAPHY` types. For an example of visualizing the results of a function, see [Visualize\n| results](#visualize_results). For more information and example on visualizing Places Insights results, see [Visualize query results](/maps/documentation/placesinsights/visualize-data).\n\nThis example uses the [United States Census Bureau\nData](https://console.cloud.google.com/marketplace/product/united-states-census-bureau/us-geographic-boundaries)\nBigQuery [public dataset](https://cloud.google.com/bigquery/public-data) to get\nthe boundaries for the three counties in New York City: \"Queens\",\"Kings\", \"New\nYork\". The boundaries of each county are contained in the `county_geom` column.\n\nThis example then uses the BigQuery\n[`ST_SIMPLIFY`](https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions#st_simplify)\nfunction to return a simplified version of `county_geom`. The `ST_SIMPLIFY`\nfunction replaces nearly straight chains of edges with a single long edge. \n\n```googlesql\nDECLARE geos ARRAY\u003cGEOGRAPHY\u003e;\n\nSET geos = (SELECT ARRAY_AGG(ST_SIMPLIFY(county_geom, 100))\n FROM `bigquery-public-data.geo_us_boundaries.counties`\n WHERE county_name IN (\"Queens\",\"Kings\", \"New York\") AND state_fips_code = \"36\");\n\nSELECT * FROM `maps-platform-analytics-hub.sample_places_insights_us.PLACES_COUNT_PER_GEO`(\n JSON_OBJECT(\n 'geographies', geos,\n 'types', [\"restaurant\"],\n 'business_status', [\"OPERATIONAL\"]\n )\n);\n```\n\nThe response for the function:\n\nVisualize results\n\nThe following images show this data displayed in Looker Studio as a filled map,\nincluding the outline of each county:\n\nTo import your data into Looker Studio:\n\n1. Run the function above to generate the results.\n\n2. In the BigQuery results, click **Open in -\\\u003e Looker Studio**. Your results\n are automatically imported into Looker Studio.\n\n3. Looker Studio creates a default report page and initializes it with a title,\n table, and bar graph of the results.\n\n4. Select everything on the page and delete it.\n\n5. Click **Insert -\\\u003e Filled map** to add a filled map to your report.\n\n6. Under **Chart types -\\\u003e Setup** configure the fields as shown below::\n\n7. The filled map appears as above. You can optionally select **Chart types -\\\u003e\n Styles** to further configure the appearance of the map.\n\nFor more information and example on visualizing Places Insights results, see\n[Visualize query results](/maps/documentation/placesinsights/visualize-data)."]]