Le SDK Places pour Android (ancien) est compatible avec Lieu actuel (ancien). Si vous connaissez Current Place (Legacy), Nearby Search (New) apporte les modifications suivantes :
Utilise un nouveau modèle de tarification. Pour obtenir des informations sur les tarifs de toutes les API, consultez SDK Places pour Android (nouveau).
Vous devez initialiser votre application en appelant la méthode
Places.initializeWithNewPlacesApiEnabled()
. Pour en savoir plus sur la sélection du service Places API, consultez Configurer votre projet Google Cloud.Le masquage de champ est obligatoire. Vous devez spécifier les champs que vous souhaitez voir figurer dans la réponse. Il n'existe pas de liste par défaut des champs renvoyés. Si vous omettez cette liste, les méthodes renvoient une erreur.
La recherche à proximité (nouveau) n'est pas compatible avec
PlaceLikelihood
. Avec Nearby Search (New), vous pouvez utiliser l'ordre des résultats pour déterminer l'emplacement le plus probable.
Exemples de Nearby Search (nouveau)
Pour en savoir plus et obtenir des exemples d'utilisation de Nearby Search (New), consultez la documentation Nearby Search (New).
Utiliser Nearby Search (nouveau) pour obtenir le lieu actuel
L'exemple suivant montre comment obtenir le lieu actuel avec Nearby Search (nouveau) en remplaçant l'utilisation de PlacesClient.findCurrentPlace()
par PlacesClient.searchNearby()
:
public class MainActivity extends extends AppCompatActivity {
private FusedLocationProviderClient fusedLocationProviderClient;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
// ...
// get permission
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.ACCESS_FINE_LOCATION)
== PackageManager.PERMISSION_GRANTED) {
// get location and search
fusedLocationProviderClient
.getLastLocation()
.addOnSuccessListener(
this,
location -> {
if (location != null) {
LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude());
CircularBounds circle = CircularBounds.newInstance(latLng, 10);
List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.DISPLAY_NAME);
SearchNearbyRequest.Builder request = SearchNearbyRequest.builder(circle, placeFields);
placesClient
.searchNearby(request.build())
.addOnSuccessListener(response ->
List<Place> places = response.getPlaces();)
.addOnFailureListener(
exception -> {
// handle failure
});
} else {
// failed to get location.
}
})
.addOnFailureListener(
e -> {
// handle error
});
} else {
ActivityCompat.requestPermissions(
this,
new String[] {Manifest.permission.ACCESS_FINE_LOCATION},
PERMISSION_REQUEST_CODE);
}
}
}