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