Como usar a API Playable Locations

Esta seção explica como acessar os locais de jogo e contém exemplos que demonstram como chamar as APIs.

Receber localizações jogáveis

Você recupera conjuntos de locais jogáveis sob demanda, à medida que os jogadores progridem no jogo. Não é possível recuperar e armazenar em cache um conjunto de dados grande para uso por um longo período.

Para receber um conjunto de locais onde é possível jogar, chame o método samplePlayableLocations. Na chamada, você especifica a área a ser pesquisada e também os critérios de filtro. O método samplePlayableLocations retorna um conjunto de objetos PlayableLocation, que contém locais jogáveis selecionados e gerados.

A solicitação HTTP

O código a seguir demonstra como chamar o método samplePlayableLocations fazendo uma solicitação POST HTTP, transmitindo parâmetros no corpo da solicitação.

POST https://playablelocations.googleapis.com/v3:samplePlayableLocations?key=YOUR_API_KEY

O corpo da solicitação

Ao chamar o método samplePlayableLocations, você transmite os parâmetros da chamada usando um objeto JSON no corpo da solicitação HTTP.

{
  "areaFilter": {
    "s2CellId": string,
  },
  "criteria": [
    {
      "gameObjectType": number,
      "filter": {
          "maxLocationCount": number,
          "spacing": {
            "minSpacingMeters": number,
            "pointType": enum(PointType)
          },
          "includedTypes": [
            string
          ],
      },
      "fieldsToReturn": string
    }
  ]
}

Modelo de objeto de solicitação

As relações entre os subobjetos JSON são representadas na ilustração abaixo.

Gráfico vetorial de parâmetros de solicitação

Exemplo 1: corpo da solicitação

O exemplo de código a seguir demonstra filters e fields_to_return.

{
   "area_filter":{
      "s2_cell_id":7715420662885515264
   },
   "criteria":[
      {
         "gameObjectType":1,
         "filter":{
            "maxLocationCount":4,
            "includedTypes":[
               "food_and_drink"
            ]
         },
         "fields_to_return": {"paths": ["name"]}
      },
      {
         "gameObjectType":2,
         "filter":{
            "maxLocationCount":4
         },
         "fields_to_return": {"paths": ["types", "snapped_point"]}}
   ]
}

Exemplo 2: corpo da solicitação

O exemplo de código abaixo demonstra maxLocationCount para vários tipos de objeto.

{
   "area_filter":{
      "s2_cell_id":7715420662885515264
   },
   "criteria":[
      {
         "gameObjectType":1,
         "filter":{
            "maxLocationCount":4,
            "spacing":{
               "minSpacingMeters":500
            }
         }
      },
      {
         "gameObjectType":2,
         "filter":{
            "maxLocationCount":4,
            "spacing":{
               "minSpacingMeters":400
            }
         }
      },
      {
         "gameObjectType":3,
         "filter":{
            "maxLocationCount":50,
            "spacing":{
               "minSpacingMeters":200
            }
         }
      }
   ]
}