Places SDK для Android (устаревшая версия) поддерживает функцию «Текущее место» (устаревшая версия) . Если вы знакомы с функцией «Текущее место» (устаревшая версия), функция «Поиск рядом» (новая версия) вносит следующие изменения:
Использует новую модель ценообразования. Информацию о ценах для всех API см. в разделе Places SDK для Android (новый) .
Необходимо инициализировать приложение, вызвав метод
Places.initializeWithNewPlacesApiEnabled()
. Подробнее о выборе службы API Places см. в статье Настройка проекта Google Cloud .Требуется маскирование полей. Необходимо указать, какие поля должны быть возвращены в ответе. Списка возвращаемых полей по умолчанию нет. Если этот список не указан, методы вернут ошибку.
Функция Nearby Search (новая) не поддерживает
PlaceLikelihood
. С помощью Nearby Search (новая) вы можете определить наиболее вероятное местоположение, используя порядок результатов.
Примеры поиска поблизости (новые)
Дополнительную информацию, а также примеры использования функции Nearby Search (New) см. в документации по функции Nearby Search (New) .
Используйте функцию «Поиск поблизости» (новый), чтобы найти текущее место
В следующем примере показано, как получить текущее место с помощью Nearby Search (New), заменив использование PlacesClient.findCurrentPlace()
на 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);
}
}
}