Method: computeInsights

RPC do Compute Insights

Esse método permite recuperar insights sobre áreas usando vários filtros, como área, tipo de lugar, status de funcionamento, nível de preço e classificações. No momento, os insights "contagem" e "lugares" são aceitos. Com insights de contagem, você pode responder a perguntas como "Quantos restaurantes na Califórnia são operacionais, baratos e têm uma classificação média de pelo menos 4 estrelas?" (consulte o tipo enumerado insight para mais detalhes). Com os insights de lugares, você pode determinar quais lugares correspondem ao filtro solicitado. Os clientes podem usar esses nomes de recursos de lugar para buscar mais detalhes sobre cada lugar usando a API Places.

Solicitação HTTP

POST https://areainsights.googleapis.com/v1:computeInsights

O URL usa a sintaxe de transcodificação gRPC.

Corpo da solicitação

O corpo da solicitação contém dados com a seguinte estrutura:

Representação JSON
{
  "insights": [
    enum (Insight)
  ],
  "filter": {
    object (Filter)
  }
}
Campos
insights[]

enum (Insight)

Obrigatório. Insights a serem calculados. No momento, apenas INSIGHT_COUNT e INSIGHT_PLACES são aceitos.

filter

object (Filter)

Obrigatório. Filtro de insights.

Corpo da resposta

Resposta para a RPC v1.computeInsights.

Se bem-sucedido, o corpo da resposta incluirá dados com a estrutura a seguir:

Representação JSON
{
  "placeInsights": [
    {
      object (PlaceInsight)
    }
  ],
  "count": string
}
Campos
placeInsights[]

object (PlaceInsight)

Resultado para Insights.INSIGHT_PLACES.

count

string (int64 format)

Resultado para Insights.INSIGHT_COUNT.

Escopos de autorização

Requer o seguinte escopo OAuth:

  • https://www.googleapis.com/auth/cloud-platform

Insight

Insights compatíveis.

Enums
INSIGHT_UNSPECIFIED Não especificado.
INSIGHT_COUNT

Insight de contagem.

Quando esse insight é especificado, v1.computeInsights retorna o número de lugares que correspondem aos critérios de filtro especificados.

For example if the request is:
ComputeInsightsRequest {
  insights: INSIGHT_COUNT
  filter {
    locationFilter {region: <PlaceId of state of CA>}
    typeFilter {includedTypes: "restaurant"}
    operatingStatus: OPERATING_STATUS_OPERATIONAL
    priceLevels: PRICE_LEVEL_FREE
    priceLevels: PRICE_LEVEL_INEXPENSIVE
    minRating: 4.0
  }
}

The method will return the count of restaurants in California that are
operational, with price level free or inexpensive and have an average
rating of at least 4 starts.

Example response:
ComputeInsightsResponse {
  count: <number of places>
}
INSIGHT_PLACES

Locais de devolução

Quando esse insight é especificado, o v1.computeInsights retorna os lugares que correspondem aos critérios de filtro especificados.

For example if the request is:
ComputeInsightsRequest {
  insights: INSIGHT_PLACES
  filter {
    locationFilter {region: <PlaceId of state of CA>}
    typeFilter {includedTypes: "restaurant"}
    operatingStatus: OPERATING_STATUS_OPERATIONAL
    priceLevels: PRICE_LEVEL_FREE
    priceLevels: PRICE_LEVEL_INEXPENSIVE
    minRating: 4.0
  }
}

The method will return list of places of restaurants in
California that are operational, with price level free or inexpensive and
have an average rating of at least 4 stars.

Example response:
ComputeInsightsResponse {
  placeInsights { place: "places/ABC" }
  placeInsights { place: "places/PQR" }
  placeInsights { place: "places/XYZ" }
}

Filtro

Filtros para a RPC v1.computeInsights.

Representação JSON
{
  "locationFilter": {
    object (LocationFilter)
  },
  "typeFilter": {
    object (TypeFilter)
  },
  "operatingStatus": [
    enum (OperatingStatus)
  ],
  "priceLevels": [
    enum (PriceLevel)
  ],
  "ratingFilter": {
    object (RatingFilter)
  }
}
Campos
locationFilter

object (LocationFilter)

Obrigatório. Restringe os resultados a lugares que estão na área especificada pelos filtros de local.

typeFilter

object (TypeFilter)

Obrigatório. Filtros de tipo de lugar.

operatingStatus[]

enum (OperatingStatus)

Opcional. Restringe os resultados a lugares cujo status de operação está incluído nesta lista. Se operatingStatus não estiver definido, OPERATING_STATUS_OPERATIONAL será usado por padrão.

priceLevels[]

enum (PriceLevel)

Opcional. Restringe os resultados aos lugares cujo nível de preço está incluído nesta lista. Se price_level não estiver definido, todos os níveis de preço serão incluídos nos resultados.

ratingFilter

object (RatingFilter)

Opcional. Restringe os resultados a lugares com classificações médias dos usuários no intervalo especificado por ratingFilter. Se ratingFilter não estiver definido, todas as notas serão incluídas no resultado.

LocationFilter

Filtros de local.

Especifica a área de interesse do insight.

Representação JSON
{

  // Union field area can be only one of the following:
  "circle": {
    object (Circle)
  },
  "region": {
    object (Region)
  },
  "customArea": {
    object (CustomArea)
  }
  // End of list of possible types for union field area.
}
Campos
Campo de união area. É necessário especificar uma das opções a seguir. area pode ser apenas de um dos tipos a seguir:
circle

object (Circle)

Área como um círculo.

region

object (Region)

Área como região.

customArea

object (CustomArea)

Área personalizada especificada por um polígono.

Círculo

Um círculo é definido por um ponto central e um raio em metros.

Representação JSON
{
  "radius": integer,

  // Union field center can be only one of the following:
  "latLng": {
    object (LatLng)
  },
  "place": string
  // End of list of possible types for union field center.
}
Campos
radius

integer

Opcional. O raio do círculo em metros

Campo de união center. O centro do círculo. center pode ser apenas de um dos tipos a seguir:
latLng

object (LatLng)

A latitude e a longitude do centro do círculo.

place

string

O nome do recurso do lugar do centro do círculo. Somente lugares com pontos são aceitos.

LatLng

Um objeto que representa um par de latitude/longitude. Ele é expresso como um par de valores duplos para representar graus de latitude e longitude. A menos que especificado de outra forma, esse objeto precisa seguir o padrão WGS84. Os valores precisam estar dentro de intervalos normalizados.

Representação JSON
{
  "latitude": number,
  "longitude": number
}
Campos
latitude

number

A latitude em graus. Precisa estar no intervalo [-90,0, +90,0].

longitude

number

A longitude em graus. Precisa estar no intervalo [-180,0, +180,0].

Região

Uma região é um limite geográfico, como cidades, CEPs, condados, estados etc.

Representação JSON
{

  // Union field region can be only one of the following:
  "place": string
  // End of list of possible types for union field region.
}
Campos
Campo de união region. Define uma região geográfica. Só é possível especificar um tipo de região por vez (por exemplo, lugar). region pode ser apenas de um dos tipos a seguir:
place

string

O identificador exclusivo de uma região geográfica específica.

CustomArea

Área personalizada.

Representação JSON
{
  "polygon": {
    object (Polygon)
  }
}
Campos
polygon

object (Polygon)

Obrigatório. A área personalizada representada como um polígono

Polígono

Um polígono é representado por uma série de coordenadas conectadas em uma sequência ordenada no sentido anti-horário. As coordenadas formam um loop fechado e definem uma região preenchida. As coordenadas inicial e final são equivalentes e precisam conter valores idênticos. O formato é uma versão simplificada dos polígonos do GeoJSON. Só aceitamos um anel externo no sentido anti-horário.

Representação JSON
{
  "coordinates": [
    {
      object (LatLng)
    }
  ]
}
Campos
coordinates[]

object (LatLng)

Opcional. As coordenadas que definem o polígono.

TypeFilter

Filtros de tipo de lugar.

Somente os tipos de lugar da tabela a são aceitos.

Um lugar só pode ter um tipo principal associado. Por exemplo, o tipo principal pode ser "mexican_restaurant" ou "steak_house". Use "includedPrimaryTypes" e "excludedPrimaryTypes" para filtrar os resultados no tipo principal de um lugar.

Um lugar também pode ter vários valores de tipo associados a ele. Por exemplo, um restaurante pode ter os seguintes tipos: "seafood_restaurant", "restaurant", "food", "point_of_interest", "establishment". Use "includedTypes" e "excludedTypes" para filtrar os resultados na lista de tipos associados a um lugar.

Se uma pesquisa for especificada com várias restrições de tipo, apenas os lugares que atenderem a todas as restrições serão retornados. Por exemplo, se você especificar {"includedTypes": ["restaurant"], "excludedPrimaryTypes": ["steak_house"]}, os lugares retornados oferecem serviços relacionados a "restaurante", mas não operam principalmente como "steak_house".

Se houver tipos conflitantes, ou seja, um tipo aparece nos tipos includedTypes e excludedTypes ou nos tipos includedPrimaryTypes e excludedPrimaryTypes, um erro INVALID_ARGUMENT será retornado.

Um dos tipos incluídos ou incluídos principais precisa ser definido.

Representação JSON
{
  "includedTypes": [
    string
  ],
  "excludedTypes": [
    string
  ],
  "includedPrimaryTypes": [
    string
  ],
  "excludedPrimaryTypes": [
    string
  ]
}
Campos
includedTypes[]

string

Opcional. Tipos de lugar incluídos.

excludedTypes[]

string

Opcional. Tipos de lugar excluídos.

includedPrimaryTypes[]

string

Opcional. Incluiu os tipos de lugar principais.

excludedPrimaryTypes[]

string

Opcional. Tipos de lugar principais excluídos.

OperatingStatus

Status de funcionamento do lugar.

Enums
OPERATING_STATUS_UNSPECIFIED Não especificado.
OPERATING_STATUS_OPERATIONAL O lugar está funcionando e está aberto durante o horário definido.
OPERATING_STATUS_PERMANENTLY_CLOSED O lugar não está mais em funcionamento.
OPERATING_STATUS_TEMPORARILY_CLOSED O lugar está temporariamente fechado e deve ser reaberto no futuro.

PriceLevel

Nível de preço do lugar.

Enums
PRICE_LEVEL_UNSPECIFIED O nível de preço do lugar é não especificado ou desconhecido.
PRICE_LEVEL_FREE O lugar oferece serviços sem custo financeiro.
PRICE_LEVEL_INEXPENSIVE O lugar oferece serviços baratos.
PRICE_LEVEL_MODERATE O lugar oferece serviços com preços moderados.
PRICE_LEVEL_EXPENSIVE O lugar oferece serviços caros.
PRICE_LEVEL_VERY_EXPENSIVE O lugar oferece serviços muito caros.

RatingFilter

Filtros de avaliação média do usuário.

Representação JSON
{
  "minRating": number,
  "maxRating": number
}
Campos
minRating

number

Opcional. Restringe os resultados a lugares com classificação média do usuário maior ou igual a minRating. Os valores precisam estar entre 1,0 e 5,0.

maxRating

number

Opcional. Restringe os resultados a lugares com classificação média do usuário menor ou igual a "maxRating". Os valores precisam estar entre 1,0 e 5,0.

PlaceInsight

Contém informações sobre um lugar

Representação JSON
{
  "place": string
}
Campos
place

string

O identificador exclusivo do lugar. Esse nome de recurso pode ser usado para extrair detalhes sobre o lugar usando a API Places.