Method: computeInsights

Compute Insights RPC

Этот метод позволяет вам получить информацию о районах, используя различные фильтры, такие как: район, тип места, рабочий статус, уровень цен и рейтинги. В настоящее время поддерживаются данные «подсчет» и «места». С помощью статистики «подсчета» вы можете ответить на такие вопросы, как «Сколько ресторанов расположены в Калифорнии, которые работают, недороги и имеют средний рейтинг не менее 4 звезд» (более подробную информацию см. в перечислении insight ). С помощью статистики мест вы можете определить, какие места соответствуют запрошенному фильтру. Затем клиенты могут использовать эти имена ресурсов мест для получения более подробной информации о каждом отдельном месте с помощью Places API.

HTTP-запрос

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

URL-адрес использует синтаксис транскодирования gRPC .

Тело запроса

Тело запроса содержит данные следующей структуры:

JSON-представление
{
  "insights": [
    enum (Insight)
  ],
  "filter": {
    object (Filter)
  }
}
Поля
insights[]

enum ( Insight )

Необходимый. Информация для вычислений. В настоящее время поддерживаются только INSIGHT_COUNT и INSIGHT_PLACES.

filter

object ( Filter )

Необходимый. Фильтр понимания.

Тело ответа

Ответ для RPC v1.computeInsights.

В случае успеха тело ответа содержит данные следующей структуры:

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 возвращает идентификаторы мест, соответствующие указанным критериям фильтра.

Пример запроса:

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

Фильтр

Фильтры для RPC v1.computeInsights.

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 )

Необязательный. Ограничивает результаты местами, рабочий статус которых включен в этот список. Если OperationStatus не установлен, по умолчанию используется OPERATING_STATUS_OPERATIONAL.

priceLevels[]

enum ( PriceLevel )

Необязательный. Ограничивает результаты местами, уровень цен которых включен в этот список. Если priceLevels не установлен, в результаты включаются все уровни цен.

ratingFilter

object ( RatingFilter )

Необязательный. Ограничивает результаты местами, средние оценки пользователей которых находятся в диапазоне, указанном в параметреatingFilter. Если рейтингFilter не установлен, в результат включаются все рейтинги.

Фильтр местоположения

Фильтры местоположения.

Указывает область интереса для анализа.

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 .

ШиротаДлительность

Объект, представляющий пару широты и долготы. Это выражается в виде пары двойных чисел, обозначающих градусы широты и градусы долготы. Если не указано иное, этот объект должен соответствовать стандарту 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 )

Необязательный. Координаты, определяющие многоугольник.

ТипФильтр

Разместите фильтры типов.

Поддерживаются только типы мест из таблицы a .

С местом может быть связан только один основной тип. Например, основным типом может быть «mexican_restaurant» или «steak_house». Используйте includePrimaryTypes и ExcludedPrimaryTypes, чтобы фильтровать результаты по основному типу места.

С местом также может быть связано несколько значений типа. Например, ресторан может иметь следующие типы: «морепродукты_ресторан», «ресторан», «еда», «точка_интереса», «заведение». Используйте включенные типы и исключенные типы, чтобы фильтровать результаты в списке типов, связанных с местом.

Если для поиска заданы ограничения нескольких типов, возвращаются только места, удовлетворяющие всем ограничениям. Например, если вы укажете {"includedTypes": ["restaurant"], "excludedPrimaryTypes": ["steak_house"]}, возвращаемые места предоставляют услуги, связанные с "рестораном", но не работают в основном как "стейк_хаус".

Если есть какие-либо конфликтующие типы, т. е. тип появляется как в типах includeTypes, так и в ExcludedTypes или в включенныхPrimaryTypes и ExcludedPrimaryTypes, возвращается ошибка INVALID_ARGUMENT.

Должен быть установлен один из включенных типов или включенных первичных типов.

JSON-представление
{
  "includedTypes": [
    string
  ],
  "excludedTypes": [
    string
  ],
  "includedPrimaryTypes": [
    string
  ],
  "excludedPrimaryTypes": [
    string
  ]
}
Поля
includedTypes[]

string

Необязательный. Включенные типы мест.

excludedTypes[]

string

Необязательный. Исключенные типы мест.

includedPrimaryTypes[]

string

Необязательный. Включены основные типы мест.

excludedPrimaryTypes[]

string

Необязательный. Исключены основные типы мест.

Операционный статус

Рабочее состояние места.

Перечисления
OPERATING_STATUS_UNSPECIFIED Не указан. Это значение не следует использовать.
OPERATING_STATUS_OPERATIONAL Место работает и открыто в определенные часы.
OPERATING_STATUS_PERMANENTLY_CLOSED The Place больше не занимается бизнесом.
OPERATING_STATUS_TEMPORARILY_CLOSED Заведение временно закрыто и, как ожидается, откроется в будущем.

Уровень цены

Уровень цен места.

Перечисления
PRICE_LEVEL_UNSPECIFIED Не указан. Это значение не следует использовать.
PRICE_LEVEL_FREE Место предоставляет бесплатные услуги.
PRICE_LEVEL_INEXPENSIVE Место предоставляет недорогие услуги.
PRICE_LEVEL_MODERATE Место предоставляет услуги по умеренным ценам.
PRICE_LEVEL_EXPENSIVE Место предоставляет дорогие услуги.
PRICE_LEVEL_VERY_EXPENSIVE Место предоставляет очень дорогие услуги.

РейтингФильтр

Фильтры среднего рейтинга пользователей.

JSON-представление
{
  "minRating": number,
  "maxRating": number
}
Поля
minRating

number

Необязательный. Ограничивает результаты местами, средний рейтинг пользователей которых больше или равен minRating. Значения должны находиться в диапазоне от 1,0 до 5,0.

maxRating

number

Необязательный. Ограничивает результаты местами, средний рейтинг пользователей которых строго меньше или равен maxRating. Значения должны находиться в диапазоне от 1,0 до 5,0.

ПлейсИнсайт

Содержит информацию о месте

JSON-представление
{
  "place": string
}
Поля
place

string

Уникальный идентификатор места. Это имя ресурса можно использовать для получения сведений о месте с помощью Places API .