Eseguire la migrazione da Find Current Place (legacy) a Nearby Search (nuovo)

Sviluppatori dello Spazio economico europeo (SEE)

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);
    }

  }
}