Utiliser l'API Playable Locations

Cette section explique comment obtenir des emplacements lisibles et contient également des exemples qui montrent comment appeler les API.

Obtenir des lieux de lecture

Vous récupérez des ensembles de lieux jouables à la demande à mesure que les joueurs progressent dans votre jeu. Vous ne récupérez pas un ensemble de données volumineux, puis vous ne le mettez pas en cache pour une utilisation sur une longue période.

Vous pouvez obtenir un ensemble d'emplacements de lecture en appelant la méthode samplePlayableLocations. Dans votre appel, vous spécifiez la zone dans laquelle effectuer la recherche ainsi que des critères de filtre. La méthode samplePlayableLocations renvoie un ensemble d'objets PlayableLocation, qui contient à la fois des lieux lisibles sélectionnés et des lieux lisibles générés.

La requête HTTP

Le code suivant montre comment appeler la méthode samplePlayableLocations en effectuant une requête HTTP POST en transmettant des paramètres dans le corps de la requête.

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

Corps de la requête

Lorsque vous appelez la méthode samplePlayableLocations, vous transmettez les paramètres d'appel à l'aide d'un objet JSON dans le corps de la requête HTTP.

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

Modèle d'objet de requête

Les relations entre les sous-objets JSON sont illustrées dans l'illustration suivante.

Graphique vectoriel de paramètres de requête

Exemple 1: corps de la requête

L'exemple de code suivant illustre filters et 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"]}}
   ]
}

Exemple 2: corps de la requête

L'exemple de code suivant illustre l'utilisation de maxLocationCount pour différents types d'objets.

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