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 会返回与指定过滤条件匹配的地点数量。

示例请求:

{
  "insights": ["INSIGHT_COUNT"],
  "filter": {
    "locationFilter": {
      "region": {
        "place": "places/ChIJPV4oX_65j4ARVW8IJ6IJUYs"
      }
    },
    "typeFilter": {
      "includedTypes": ["restaurant"]
    },
    "operatingStatus": ["OPERATING_STATUS_OPERATIONAL"],
    "priceLevels": [
      "PRICE_LEVEL_FREE",
      "PRICE_LEVEL_INEXPENSIVE"
    ],
    "ratingFilter": {
      "minRating": 4.0
    }
  }
}

示例响应:

{
  "count": 1234
}
INSIGHT_PLACES

退货地点

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

示例请求:

{
  "insights": ["INSIGHT_PLACES"],
  "filter": {
    "locationFilter": {
      "region": {
        "place": "places/ChIJPV4oX_65j4ARVW8IJ6IJUYs"
      }
    },
    "typeFilter": {
      "includedTypes": ["restaurant"]
    },
    "operatingStatus": ["OPERATING_STATUS_OPERATIONAL"],
    "priceLevels": [
      "PRICE_LEVEL_FREE",
      "PRICE_LEVEL_INEXPENSIVE"
    ],
    "ratingFilter": {
      "minRating": 4.0
    }
  }
}

示例响应:

{
  "placeInsights": [
    {"place": "places/ABC"},
    {"place": "places/PQR"},
    {"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)

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

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

格式:必须采用 places/PLACE_ID 格式,其中 PLACE_ID 是地点的唯一标识符。例如:places/ChIJgUbEo8cfqokR5lP9_Wh_DaM

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 检索地点的详细信息。