This section covers a series of example requests to the Places Insights API.
Return places within a circle
Return all restaurants within a 200m radius of Trafalgar Square, London.
- The search area is a circle centered on a specific latitude and longitude. The radius of this circle is 200 meters, which determines the size of the search area.
- The place type requested is restaurant, and this is passed using
includedTypes
withintypeFilters
. - The count is requested using
INSIGHTS_COUNT
, and the place IDs are requested usingINSIGHTS_PLACES
.
curl --location 'https://areainsights.googleapis.com/v1:computeInsights' \ --header 'X-Goog-Api-Key: API_KEY' \ --header 'Content-Type: application/json' \ --data '{ "insights": ["INSIGHT_COUNT", "INSIGHT_PLACES"], "filter": { "locationFilter": { "circle": { "latLng": { "latitude": 51.508, "longitude": -0.128}, "radius": 200 } }, "typeFilter": { "includedTypes": "restaurant" } } }'
Exclude place types
You can exclude place types from the count.
The following request is the same as the first example, but adds
excludedTypes
to the typeFilters
. You can use either a string or an array
of strings for the includedTypes
and excludedTypes
.
This example excludes two place types: cafe
and bakery
, from the
restaurant
count.
curl --location 'https://areainsights.googleapis.com/v1:computeInsights' \ --header 'X-Goog-Api-Key: API_KEY' \ --header 'Content-Type: application/json' \ --data '{ "insights": ["INSIGHT_COUNT", "INSIGHT_PLACES"], "filter": { "locationFilter": { "circle": { "latLng": { "latitude": 51.508, "longitude": -0.128}, "radius": 200 } }, "typeFilter": { "includedTypes": "restaurant", "excludedTypes": [ "cafe", "bakery" ] } } }'
Use primary type
This example modifies the request from the first example to include only places
that have a primaryType
of restaurant
in the count.
curl --location 'https://areainsights.googleapis.com/v1:computeInsights' \ --header 'X-Goog-Api-Key: API_KEY' \ --header 'Content-Type: application/json' \ --data '{ "insights": ["INSIGHT_COUNT", "INSIGHT_PLACES"], "filter": { "locationFilter": { "circle": { "latLng": { "latitude": 51.508, "longitude": -0.128}, "radius": 200 } }, "typeFilter": { "includedPrimaryTypes": "restaurant" } } }'
Custom polygon
This example demonstrates how to use a custom polygon to define your search
area. Keep in mind that specifying INSIGHTS_PLACES
restricts the search to
areas small enough to return up to 100 place IDs. For larger areas, use
INSIGHTS_COUNT
to bypass this limitation so that the service won't need to
return individual place IDs.
As before, the place type used is restaurant
. This example also introduces
three other filters:
operatingStatus
: This example counts only operational places.priceLevel
: This example counts only inexpensive and moderately priced places.ratingFilter
: This example counts only places with a review score between 4.0 and 5.0.
curl --location 'https://areainsights.googleapis.com/v1:computeInsights' \ --header 'X-Goog-Api-Key: API_KEY' \ --header 'Content-Type: application/json' \ --data '{ "insights": [ "INSIGHT_COUNT" ], "filter": { "locationFilter": { "customArea": { "polygon": { "coordinates": [ { "latitude": 37.776, "longitude": -122.666 }, { "latitude": 37.130, "longitude": -121.898 }, { "latitude": 37.326, "longitude": -121.598 }, { "latitude": 37.912, "longitude": -122.247 }, { "latitude": 37.776, "longitude": -122.666 } ] } } }, "typeFilter": { "includedTypes": "restaurant" }, "operatingStatus": [ "OPERATING_STATUS_OPERATIONAL" ], "priceLevels": [ "PRICE_LEVEL_INEXPENSIVE", "PRICE_LEVEL_MODERATE" ], "ratingFilter": { "minRating": 4.0, "maxRating": 5.0 } } }'
Geographical area
This example uses a Geographical Area place ID to set the search area.
These place IDs include the geometry of a place, such as a town or city. The
place ID used here is ChIJiQHsW0m3j4ARm69rRkrUF3w
, which corresponds to the
city of Mountain View, California.
Passing the place ID to the Places Insights API sets the search area to the bounds
of the geographic area. The place ID is passed using place
, in the format
places/place_ID
.
You can obtain a Geographical Area place ID in any of the following ways:
curl --location 'https://areainsights.googleapis.com/v1:computeInsights' \ --header 'X-Goog-Api-Key: API_KEY' \ --header 'Content-Type: application/json' \ --data '{ "insights": [ "INSIGHT_COUNT" ], "filter": { "locationFilter": { "region": { "place": "places/ChIJiQHsW0m3j4ARm69rRkrUF3w" } }, "typeFilter": { "includedTypes": [ "restaurant" ] } } }'