Bermigrasi dari Current Place (Lama) ke Nearby Search (Baru)

Developer Wilayah Ekonomi Eropa (EEA)

Places SDK for Android (Legacy) mendukung Current Place (Legacy). Jika Anda sudah familiar dengan Current Place (Lama), Nearby Search (Baru) akan membuat perubahan berikut:

  • Menggunakan model harga baru. Untuk informasi harga semua API, lihat Places SDK for Android (Baru).

  • Anda harus melakukan inisialisasi aplikasi dengan memanggil metode Places.initializeWithNewPlacesApiEnabled(). Untuk mengetahui informasi selengkapnya tentang cara memilih layanan Places API, lihat Menyiapkan project Google Cloud.

  • Penyamaran kolom wajib diisi. Anda harus menentukan kolom mana yang ingin ditampilkan dalam respons. Tidak ada daftar default kolom yang ditampilkan. Jika Anda tidak menyertakan daftar ini, metode akan menampilkan error.

  • Penelusuran di Sekitar (Baru) tidak mendukung PlaceLikelihood. Dengan Nearby Search (Baru), Anda dapat menggunakan urutan hasil untuk menentukan lokasi yang paling mungkin.

Contoh Nearby Search (Baru)

Untuk mengetahui informasi selengkapnya, serta contoh cara menggunakan Nearby Search (Baru), lihat dokumentasi Nearby Search (Baru).

Menggunakan Nearby Search (Baru) untuk mendapatkan tempat saat ini

Contoh berikut menunjukkan cara mendapatkan tempat saat ini dengan Nearby Search (Baru) dengan mengganti penggunaan PlacesClient.findCurrentPlace() dengan 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);
    }

  }
}