Vous êtes prêt !

Pour passer à l'étape de développement, accédez à notre documentation pour les développeurs.

Activer Google Places API for Android

Pour commencer, nous allons vous guider à travers la console Google Developers et effectuer deux ou trois petites choses :

  1. Créer ou choisir un projet
  2. Activer Google Places API for Android
  3. Créer les clés appropriées
Continuer

Ajout de lieux

Vous pouvez utiliser Google Places API for Android pour ajouter un lieu dans la base de données Google Places. Le lieu nouvellement ajouté est disponible dans votre application peu après. Il est ajouté dans une file d'attente de modération pour déterminer s'il peut être intégré à la base de données Places de Google et à Google Maps.

  1. Ajouter un lieu
  2. Gérer plusieurs identifiants de lieu et leur validité

Ajouter un lieu

Pour ajouter un lieu, appelez GeoDataApi.addPlace() en indiquant un objet AddPlaceRequest contenant les détails du lieu à ajouter.

Indiquez les informations suivantes lors de la création de l'objet AddPlaceRequest :

  • Obligatoire : Le nom (name) complet de l'entreprise, du point d'intérêt ou de tout autre lieu. Limité à 255 caractères.
  • Obligatoire : Un objet LatLng indiquant la position géographique du lieu.
  • Obligatoire : L'adresse (address) lisible du lieu. Si un lieu est associé à une adresse lisible au format approprié, il a plus de chances d'être approuvé par le processus de modération pour être intégré à la base de données Google Places.
  • Obligatoire : Une liste des types de lieu qui caractérisent ce lieu. Pour obtenir une liste des types de lieu disponibles, voir la documentation sur les Types de lieu et les constantes définies dans l'interface Place.
  • Facultatif : Le numéro de téléphone (phoneNumber) du lieu. Il s'agit du numéro de téléphone au format international. Le format international inclut l'indicatif du pays, précédé du signe plus (+). Par exemple, le numéro de téléphone international du bureau Google de Mountain View, États-Unis, est le +1 650-253-0000. Si un lieu est associé à un numéro de téléphone au format approprié, il a plus de chances d'être approuvé par le processus de modération pour être intégré à la base de données Google Places. Remarque : Vous devez fournir soit le numéro de téléphone (phoneNumber), soit l'objet Uri, ou les deux.
  • Facultatif : Un objet Uri contenant l'adresse du site Web officiel de ce lieu, tel que la page d'accueil d'une entreprise. Si un lieu est associé à une adresse de site Web au format approprié, il a plus de chances d'être approuvé par le processus de modération pour être intégré à la base de données Google Places. Remarque : vous devez fournir soit le numéro de téléphone (phoneNumber) soit l'objet Uri, ou les deux.

L'API renvoie un paramètre PlaceBuffer dans PendingResult. Le paramètre PlaceBuffer contient le lieu ajouté.

L'objet Place généré est associé à un identifiant de lieu unique que votre application peut utiliser dès cet instant pour extraire les détails du lieu. Les lieux ajoutés sont également disponibles peu après dans les résultats des requêtes get-current-place lancées par votre application, ainsi que dans un sélecteur de lieux affiché par votre application. La validité est déterminée par l'identifiant du projet utilisé pour générer la clé d'API.

Les lieux nouvellement ajoutés sont placés dans une file d'attente de modération pour déterminer s'ils peuvent être intégrés à la base de données Google Places. Les lieux non approuvés par le processus de modération peuvent toujours être récupérés à l'aide de l'identifiant de lieu dans l'application qui les a soumis. Toutefois, ils n'apparaissent plus dans les résultats des requêtes get-current-place, le sélecteur d'API ou toute autre méthode API. Les lieux approuvés par le processus de modération sont visibles par toutes les applications et sur Google Maps.

Pour augmenter les chances du lieu d'être approuvé par le processus de modération et ajouté à la base de données Google Places, la requête d'ajout doit inclure autant d'informations que possible. L'adresse, le numéro de téléphone et le site Web sont particulièrement importants.

L'exemple de code suivant ajoute une réserve naturelle près de Manly sur la côte est australienne.

AddPlaceRequest place =
    new AddPlaceRequest(
        "Manly Sea Life Sanctuary", // Name
        new LatLng(-33.7991, 151.2813), // Latitude and longitude
        "W Esplanade, Manly NSW 2095", // Address
        Collections.singletonList(Place.TYPE_AQUARIUM), // Place types
        "+61 1800 199 742", // Phone number
        Uri.parse("http://www.manlysealifesanctuary.com.au/") // Website
    );

Places.GeoDataApi.addPlace(mGoogleApiClient, place)
    .setResultCallback(new ResultCallback<PlaceBuffer>() {
        @Override
        public void onResult(PlaceBuffer places) {
            Log.i(TAG, "Place add result: " + places.getStatus().toString());
            Log.i(TAG, "Added place: " + places.get(0).getName().toString());
            places.release();
        }
    });

Gérer plusieurs identifiants de lieu et leur validité

Chaque identifiant de lieu fait référence à un lieu unique, mais un lieu peut avoir plusieurs identifiants. Le cas le plus courant est lorsque vous ajoutez un lieu initialement valable pour votre application et que ce lieu devient valable pour toutes les applications Google.

Lorsque vous ajoutez un lieu, vous recevez immédiatement un identifiant pour ce lieu. Cet identifiant de lieu est valable pour votre application uniquement. Le lieu est ensuite placé dans une file d'attente de modération pour déterminer s'il peut être intégré à la base de données Google Places. S'il est approuvé, le lieu reçoit un nouvel identifiant, valable pour toutes les applications et sur Google Maps.

Lorsque vous recherchez un lieu par identifiant de lieu, vous êtes assuré de toujours recevoir le même lieu en réponse (s'il existe toujours).

Toutefois, notez que la réponse peut contenir un identifiant de lieu différent de celui indiqué dans votre requête. Pour plus d'informations, voir la présentation des identifiants de lieu.

Envoyer des commentaires concernant…

location_on
Google Places API for Android