Utilizzo dell'API Playable Location

Questa sezione spiega come recuperare posizioni riproducibili e contiene anche esempi che mostrano come chiamare le API.

Recupero dei luoghi riproducibili in corso...

Puoi recuperare gruppi di luoghi giocabili on demand mentre i giocatori progrediscono nel gioco. Non recuperi e poi memorizzi nella cache un set di dati di grandi dimensioni per utilizzarlo per un periodo prolungato.

Puoi ottenere una serie di posizioni riproducibili chiamando il metodo samplePlayableLocations. Nella chiamata, devi specificare l'area in cui eseguire la ricerca e anche i criteri di filtro. Il metodo samplePlayableLocations restituisce un insieme di oggetti PlayableLocation che contiene sia posizioni riproducibili selezionate sia posizioni riproducibili generate.

La richiesta HTTP

Il codice seguente mostra come chiamare il metodo samplePlayableLocations effettuando una richiesta POST HTTP, passando i parametri nel corpo della richiesta.

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

Corpo della richiesta

Quando chiami il metodo samplePlayableLocations, passi i parametri di chiamata utilizzando un oggetto JSON nel corpo della richiesta HTTP.

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

Il modello a oggetti della richiesta

Le relazioni tra gli oggetti secondari JSON sono illustrate nell'illustrazione seguente.

Immagine vettoriale dei parametri di richiesta

Esempio 1: corpo della richiesta

Il seguente esempio di codice dimostra 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"]}}
   ]
}

Esempio 2: corpo della richiesta

Il seguente esempio di codice mostra maxLocationCount per vari tipi di oggetti.

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