Migrar do Current Place (legado) para o Nearby Search (novo)

Desenvolvedores do Espaço Econômico Europeu (EEE)

O SDK do Places para Android (legado) é compatível com o Lugar atual (legado). Se você conhece o Current Place (legado), a Nearby Search (novo) faz as seguintes mudanças:

  • Usa um novo modelo de preços. Para informações de preços de todas as APIs, consulte SDK do Places para Android (novo).

  • Inicialize o app chamando o método Places.initializeWithNewPlacesApiEnabled(). Para mais informações sobre como selecionar o serviço da API Places, consulte Configurar seu projeto do Google Cloud.

  • O mascaramento de campo é obrigatório. É necessário especificar quais campos você quer que sejam retornados na resposta. Não há uma lista padrão de campos retornados. Se você omitir essa lista, os métodos vão retornar um erro.

  • A Pesquisa por proximidade (nova) não é compatível com PlaceLikelihood. Com a Pesquisa por proximidade (nova), você pode usar a ordem dos resultados para determinar o local mais provável.

Exemplos do Nearby Search (novo)

Para mais informações e exemplos de como usar a Nearby Search (nova), consulte a documentação da Nearby Search (nova).

Usar o Nearby Search (novo) para receber o lugar atual

O exemplo a seguir demonstra como receber o lugar atual com a pesquisa por proximidade (nova) substituindo o uso de PlacesClient.findCurrentPlace() por 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);
    }

  }
}