Places SDK for Android (legacy) supporta Current Place (legacy). Se hai familiarità con Current Place (legacy), Nearby Search (New) apporta le seguenti modifiche:
Utilizza un nuovo modello di prezzi. Per informazioni sui prezzi di tutte le API, consulta Places SDK for Android (New).
Devi inizializzare l'app chiamando il metodo
Places.initializeWithNewPlacesApiEnabled()
. Per saperne di più sulla selezione del servizio API Places, vedi Configurare il progetto Google Cloud.La mascheratura dei campi è obbligatoria. Devi specificare i campi che vuoi che vengano restituiti nella risposta. Non esiste un elenco predefinito di campi restituiti. Se ometti questo elenco, i metodi restituiscono un errore.
La ricerca nelle vicinanze (nuova) non supporta
PlaceLikelihood
. Con la ricerca nelle vicinanze (nuova), puoi utilizzare l'ordine dei risultati per determinare la posizione più probabile.
Esempi di Nearby Search (nuovo)
Per ulteriori informazioni ed esempi su come utilizzare Nearby Search (New), consulta la documentazione di Nearby Search (New).
Utilizzare la ricerca nelle vicinanze (novità) per ottenere il luogo attuale
L'esempio seguente mostra come ottenere il luogo attuale con Nearby
Search (New) sostituendo l'utilizzo di PlacesClient.findCurrentPlace()
con
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);
}
}
}