Place Details

Pilih platform: Android iOS JavaScript Layanan Web

Places SDK for Android memberikan aplikasi Anda informasi lengkap tentang tempat, termasuk nama dan alamat tempat, lokasi geografis yang ditentukan sebagai koordinat lintang/bujur, jenis tempat (seperti klub malam, toko hewan peliharaan, museum), dan lainnya. Untuk mengakses informasi ini bagi tempat tertentu, Anda dapat menggunakan ID tempat, yaitu ID stabil yang secara unik mengidentifikasi tempat.

Detail tempat

Objek Place memberikan informasi tentang tempat tertentu. Anda bisa mendapatkan objek Place dengan cara berikut:

Saat meminta tempat, Anda harus menentukan jenis data tempat yang akan ditampilkan. Untuk melakukannya, teruskan List<Place.Field>, dengan menentukan jenis data yang akan ditampilkan. Pertimbangan ini penting, karena akan memengaruhi biaya untuk setiap permintaan. Karena hasil data tempat tidak boleh kosong, hanya hasil tempat dengan data yang ditampilkan (misalnya, jika tempat yang diminta tidak memiliki foto, kolom photos tidak akan ada dalam hasil). Anda dapat menentukan satu atau beberapa kolom berikut:

  • Place.Field.ADDRESS
  • Place.Field.ADDRESS_COMPONENTS
  • Place.Field.BUSINESS_STATUS
  • Place.Field.ID
  • Place.Field.LAT_LNG
  • Place.Field.NAME
  • Place.Field.OPENING_HOURS
  • Place.Field.PHONE_NUMBER
  • Place.Field.PHOTO_METADATAS
  • Place.Field.PLUS_CODE
  • Place.Field.PRICE_LEVEL
  • Place.Field.RATING
  • Place.Field.TYPES
  • Place.Field.USER_RATINGS_TOTAL
  • Place.Field.ICON_URL
  • Place.Field.ICON_BACKGROUND_COLOR
  • Place.Field.VIEWPORT
  • Place.Field.UTC_OFFSET
  • Place.Field.WEBSITE_URI

Pelajari kolom tempat lebih lanjut. Untuk informasi selengkapnya tentang cara penagihan permintaan data Tempat, lihat Penggunaan dan Penagihan.

Gunakan metode berikut untuk mengambil data dari Place:

  • getAddress() – Alamat tempat, dalam format yang dapat dibaca manusia.
  • getAddressComponents()List komponen alamat untuk tempat ini. Komponen ini disediakan untuk mengekstrak informasi terstruktur tentang alamat sebuah tempat, misalnya menemukan kota tempat suatu tempat berada. Jangan gunakan komponen ini untuk pemformatan alamat; sebagai gantinya, panggil getAddress(), yang menyediakan alamat yang diformat dan dilokalkan.
  • getBusinessStatus() – Status operasional tempat, jika berupa bisnis. Class dapat berisi salah satu nilai berikut: OPERATIONAL, CLOSED_TEMPORARILY, CLOSED PERMANENTLY.
  • getAttributions() – Atribusi yang harus ditampilkan kepada pengguna, jika data dari tempat tersebut digunakan.
  • getID() – ID tekstual untuk tempat. Baca selengkapnya tentang ID tempat di bagian lain halaman ini.
  • getLatLng() – Lokasi geografis tempat tersebut, yang ditetapkan sebagai koordinat lintang dan bujur.
  • getName() – Nama tempat.
  • getOpeningHours()OpeningHours tempat tersebut. Panggil OpeningHours.getWeekdayText() untuk menampilkan daftar string yang mewakili jam buka dan tutup untuk setiap hari dalam seminggu. Panggil OpeningHours.getPeriods() untuk menampilkan daftar objek period dengan informasi lebih mendetail yang setara dengan data yang disediakan oleh getWeekdayText(). Catatan: Jika tempat selalu buka, jangka waktu direpresentasikan sebagai Minggu pada tengah malam, dan closeEvent adalah null.
  • getPhoneNumber() – Nomor telepon tempat ini.
  • getPhotoMetadatas() – Metadata yang terkait dengan foto yang terkait dengan tempat, termasuk gambar bitmap.
  • getPlusCode() – Lokasi PlusCode Tempat ini.
  • getPriceLevel() – Tingkat harga untuk tempat ini, ditampilkan sebagai bilangan bulat dengan nilai mulai dari 0 (paling murah) hingga 4 (paling mahal).
  • getRating() – Rating gabungan untuk tempat ini, yang ditampilkan sebagai float dengan nilai mulai dari 1,0 hingga 5,0, berdasarkan ulasan pengguna gabungan.
  • getTypes() – Daftar jenis tempat yang mencirikan tempat ini. Untuk daftar jenis tempat yang tersedia, lihat dokumentasi untuk antarmuka Place.
  • getUserRatingsTotal() – Total jumlah rating pengguna untuk Tempat ini.
  • getIconUrl() – URL untuk mask ikon hitam yang mewakili jenis tempat.
  • getIconBackgroundColor – Warna latar belakang ikon untuk jenis tempat.
  • getUtcOffsetMinutes() – Offset UTC dalam menit.
  • getViewport() – Area pandang, yang ditampilkan sebagai objek LatLngBounds, berguna untuk menampilkan tempat pada peta. Dapat menampilkan null jika ukuran tempat tidak diketahui.
  • getWebsiteUri() – URI situs tempat, jika diketahui. Ini adalah situs yang dikelola oleh bisnis atau entitas lain yang terkait dengan tempat tersebut. Mengembalikan nol jika tidak ada situs web yang diketahui.
  • isOpen() – Boolean yang menunjukkan apakah tempat saat ini buka atau tidak. Jika waktu tidak ditentukan, setelan defaultnya adalah sekarang. isOpen hanya akan ditampilkan jika Place.Field.UTC_OFFSET dan Place.Field.OPENING_HOURS tersedia. Untuk memastikan hasil yang akurat, minta kolom Place.Field.BUSINESS_STATUS dan Place.Field.UTC_OFFSET di permintaan tempat asli Anda. Jika tidak diminta, diasumsikan bahwa bisnis beroperasi. Tonton video ini untuk mengetahui cara menggunakan isOpen dengan Place Details.

Beberapa contoh sederhana:

Java


final CharSequence name = place.getName();
final CharSequence address = place.getAddress();
final LatLng location = place.getLatLng();

      

Kotlin


val name = place.name
val address = place.address
val location = place.latLng

      

Mendapatkan tempat melalui ID

ID tempat adalah identifier tekstual yang secara unik mengidentifikasi tempat. Pada Places SDK for Android, Anda dapat mengambil ID tempat dengan memanggil Place.getId(). Layanan Place Autocomplete juga menampilkan ID tempat untuk setiap tempat yang cocok dengan kueri penelusuran dan filter yang diberikan. Anda dapat menyimpan ID tempat dan menggunakannya untuk mengambil lagi objek Place nanti.

Untuk mendapatkan tempat berdasarkan ID, panggil PlacesClient.fetchPlace(), dengan meneruskan FetchPlaceRequest.

API akan menampilkan FetchPlaceResponse dalam Task. FetchPlaceResponse berisi objek Place yang cocok dengan ID tempat yang diberikan.

Contoh kode berikut menunjukkan panggilan fetchPlace() untuk mendapatkan detail tempat yang ditentukan.

Java


// Define a Place ID.
final String placeId = "INSERT_PLACE_ID_HERE";

// Specify the fields to return.
final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.NAME);

// Construct a request object, passing the place ID and fields array.
final FetchPlaceRequest request = FetchPlaceRequest.newInstance(placeId, placeFields);

placesClient.fetchPlace(request).addOnSuccessListener((response) -> {
    Place place = response.getPlace();
    Log.i(TAG, "Place found: " + place.getName());
}).addOnFailureListener((exception) -> {
    if (exception instanceof ApiException) {
        final ApiException apiException = (ApiException) exception;
        Log.e(TAG, "Place not found: " + exception.getMessage());
        final int statusCode = apiException.getStatusCode();
        // TODO: Handle error with given status code.
    }
});

      

Kotlin


// Define a Place ID.
val placeId = "INSERT_PLACE_ID_HERE"

// Specify the fields to return.
val placeFields = listOf(Place.Field.ID, Place.Field.NAME)

// Construct a request object, passing the place ID and fields array.
val request = FetchPlaceRequest.newInstance(placeId, placeFields)

placesClient.fetchPlace(request)
    .addOnSuccessListener { response: FetchPlaceResponse ->
        val place = response.place
        Log.i(PlaceDetailsActivity.TAG, "Place found: ${place.name}")
    }.addOnFailureListener { exception: Exception ->
        if (exception is ApiException) {
            Log.e(TAG, "Place not found: ${exception.message}")
            val statusCode = exception.statusCode
            TODO("Handle error with given status code")
        }
    }

      

Menampilkan atribusi dalam aplikasi Anda

Saat aplikasi Anda menampilkan informasi tempat, aplikasi juga harus menampilkan atribusi. Lihat dokumentasi tentang atribusi.

Selengkapnya tentang ID tempat

ID tempat yang digunakan di Places SDK for Android adalah ID yang sama dengan yang digunakan di Places API. Setiap ID tempat hanya dapat merujuk ke satu tempat, tetapi satu tempat dapat memiliki lebih dari satu ID tempat. Ada keadaan lain yang dapat menyebabkan suatu tempat mendapatkan ID tempat baru. Misalnya, hal ini dapat terjadi jika bisnis pindah ke lokasi baru.

Saat meminta tempat dengan menentukan ID tempat, Anda bisa yakin bahwa Anda akan selalu menerima tempat yang sama dalam respons (jika tempat itu masih ada). Namun, perlu diperhatikan bahwa respons mungkin berisi ID tempat yang berbeda dari yang ada di permintaan Anda.

Untuk informasi selengkapnya, lihat ringkasan ID tempat.