Method: computeInsights

Compute Insights RPC

借助此方法,您可以使用各种过滤条件(例如地区、地点类型、营业状态、价格水平和评分)检索有关地区的数据洞见。目前支持“count”和“places”数据分析。借助“计数”数据分析,您可以回答诸如“加利福尼亚州有多少家正在营业的餐厅价格低廉且平均评分至少为 4 星”之类的问题(如需了解详情,请参阅 insight 枚举)。借助“地点”数据分析,您可以确定哪些地点与请求的过滤条件匹配。然后,客户端可以使用这些地点资源名称使用 Google 地图 API 提取每个地点的更多详细信息。

HTTP 请求

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

网址采用 gRPC 转码语法。

请求正文

请求正文中包含结构如下的数据:

JSON 表示法
{
  "insights": [
    enum (Insight)
  ],
  "filter": {
    object (Filter)
  }
}
字段
insights[]

enum (Insight)

必需。要计算的数据分析。目前仅支持 INSIGHT_COUNT 和 INSIGHT_PLACES。

filter

object (Filter)

必需。数据分析过滤器。

响应正文

v1.computeInsights RPC 的响应。

如果成功,响应正文将包含结构如下的数据:

JSON 表示法
{
  "placeInsights": [
    {
      object (PlaceInsight)
    }
  ],
  "count": string
}
字段
placeInsights[]

object (PlaceInsight)

Insights.INSIGHT_PLACES 的结果。

count

string (int64 format)

Insights.INSIGHT_COUNT 的结果。

授权范围

需要以下 OAuth 范围:

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

数据分析

支持的数据分析。

枚举
INSIGHT_UNSPECIFIED 未指定。
INSIGHT_COUNT

统计数据分析。

指定此数据分析后,v1.computeInsights 会返回与指定过滤条件匹配的地点数量。

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

退货地点

指定此数据分析后,v1.computeInsights 会返回与指定过滤条件匹配的地点。

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" }
}

过滤

v1.computeInsights RPC 的过滤条件。

JSON 表示法
{
  "locationFilter": {
    object (LocationFilter)
  },
  "typeFilter": {
    object (TypeFilter)
  },
  "operatingStatus": [
    enum (OperatingStatus)
  ],
  "priceLevels": [
    enum (PriceLevel)
  ],
  "ratingFilter": {
    object (RatingFilter)
  }
}
字段
locationFilter

object (LocationFilter)

必需。将结果限制为位于地点过滤条件指定的区域内。

typeFilter

object (TypeFilter)

必需。地点类型过滤条件。

operatingStatus[]

enum (OperatingStatus)

可选。将结果限制为运营状态包含在此列表中的地点。如果未设置 operatingStatus,则默认使用 OPERATING_STATUS_OPERATIONAL。

priceLevels[]

enum (PriceLevel)

可选。将结果限制为仅包含价位在此列表中的地点。如果未设置 price_level,则结果中会包含所有价格层级。

ratingFilter

object (RatingFilter)

可选。将结果限制为用户平均评分在 ratingFilter 指定的范围内的地点。如果未设置 ratingFilter,则结果中会包含所有评分。

LocationFilter

位置过滤条件。

指定数据洞见的关注区域。

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.
}
字段
联合字段 area。必须指定以下某项。area 只能是下列其中一项:
circle

object (Circle)

区域为圆形。

region

object (Region)

将区域作为地区。

customArea

object (CustomArea)

由多边形指定的自定义区域。

圆形

圆形由中心点和半径(以米为单位)定义。

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.
}
字段
radius

integer

可选。圆的半径(以米为单位)

联合字段 center。圆心。center 只能是下列其中一项:
latLng

object (LatLng)

圆心的纬度和经度。

place

string

圆心的位置资源名称。仅支持地点地图项。

LatLng

表示纬度/经度对的对象。该对象以一对双精度数表示,分别代表纬度度数和经度度数。除非另有说明,否则该对象必须符合 WGS84 标准。值必须介于标准化范围内。

JSON 表示法
{
  "latitude": number,
  "longitude": number
}
字段
latitude

number

纬度(以度为单位)。它必须在 [-90.0, +90.0] 范围内。

longitude

number

经度(以度为单位)。它必须在 [-180.0, +180.0] 范围内。

区域

地区是指地理边界,例如城市、邮政编码、郡/县、州/省级行政区等。

JSON 表示法
{

  // Union field region can be only one of the following:
  "place": string
  // End of list of possible types for union field region.
}
字段
联合字段 region。定义地理区域。一次只能指定一种类型的区域(例如地点)。region 只能是下列其中一项:
place

string

某个特定地理区域的唯一标识符。

CustomArea

自定义区域。

JSON 表示法
{
  "polygon": {
    object (Polygon)
  }
}
字段
polygon

object (Polygon)

必需。表示为多边形的自定义区域

多边形

多边形由一系列以逆时针顺序连接的坐标表示。坐标会形成一个闭合环路,并定义一个填充区域。第一个坐标和最后一个坐标是等效的,并且必须包含相同的值。该格式是 GeoJSON 多边形的简化版本(我们仅支持一个逆时针外环)。

JSON 表示法
{
  "coordinates": [
    {
      object (LatLng)
    }
  ]
}
字段
coordinates[]

object (LatLng)

可选。用于定义多边形的坐标。

TypeFilter

地点类型过滤条件。

仅支持表 a 中的地点类型。

一个地点只能有一个主要类型与其相关联。例如,主要类型可能是“mexican_restaurant”或“steak_house”。使用 includedPrimaryTypes 和 excludedPrimaryTypes 可按地点的主要类型过滤结果。

地点还可以有多个与其关联的类型值。例如,餐厅可能具有以下类型:“seafood_restaurant”“restaurant”“food”“point_of_interest”“establishment”。使用 includedTypes 和 excludedTypes 过滤与地点关联的类型列表中的结果。

如果在搜索时指定了多个类型限制,系统只会返回满足所有限制的地点。例如,如果您指定 {"includedTypes": ["restaurant"], "excludedPrimaryTypes": ["steak_house"]}, 则返回的地点提供与“餐厅”相关的服务,但主要经营的不是“steak_house”。

如果存在任何冲突的类型(即某个类型同时出现在 includedTypes 和 excludedTypes 类型或 includedPrimaryTypes 和 excludedPrimaryTypes 中),系统会返回 INVALID_ARGUMENT 错误。

必须设置 includedTypes 或 includedPrimaryTypes 之一。

JSON 表示法
{
  "includedTypes": [
    string
  ],
  "excludedTypes": [
    string
  ],
  "includedPrimaryTypes": [
    string
  ],
  "excludedPrimaryTypes": [
    string
  ]
}
字段
includedTypes[]

string

可选。包含的地点类型。

excludedTypes[]

string

可选。排除的地点类型。

includedPrimaryTypes[]

string

可选。包含的主要地点类型。

excludedPrimaryTypes[]

string

可选。排除的主要地点类型。

OperatingStatus

地点的营业状态。

枚举
OPERATING_STATUS_UNSPECIFIED 未指定。
OPERATING_STATUS_OPERATIONAL 相应地点正在营业,并在其指定的营业时间内开放。
OPERATING_STATUS_PERMANENTLY_CLOSED 相应地点已停止营业。
OPERATING_STATUS_TEMPORARILY_CLOSED 该地点暂时关闭,预计日后会重新开放。

PriceLevel

地点的价格水平。

枚举
PRICE_LEVEL_UNSPECIFIED 地点价格级别未指定或未知。
PRICE_LEVEL_FREE 相应地点提供免费服务。
PRICE_LEVEL_INEXPENSIVE 相应地点提供价格实惠的服务。
PRICE_LEVEL_MODERATE 相应地点提供价格适中的服务。
PRICE_LEVEL_EXPENSIVE 该地提供的服务价格昂贵。
PRICE_LEVEL_VERY_EXPENSIVE 相应地点提供的服务价格非常高。

RatingFilter

“用户评分平均值”过滤条件。

JSON 表示法
{
  "minRating": number,
  "maxRating": number
}
字段
minRating

number

可选。将结果限制为平均用户评分大于或等于 minRating 的地点。值必须介于 1.0 到 5.0 之间。

maxRating

number

可选。将结果限制为平均用户评分严格低于或等于 maxRating 的地点。值必须介于 1.0 到 5.0 之间。

PlaceInsight

包含地点的相关信息

JSON 表示法
{
  "place": string
}
字段
place

string

地点的唯一标识符。此资源名称可用于使用 Places API 检索地点的详细信息。