Place Details (Baru)

Pilih platform: Android iOS JavaScript Web Service

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

Mendapatkan detail tempat

Class GMSPlace berisi informasi tentang tempat tertentu, termasuk semua kolom data yang ditampilkan di Kolom Data Tempat (Baru). Dapatkan objek GMSPlace dengan memanggil GMSPlacesClient fetchPlaceWithRequest:, dengan meneruskan objek GMSFetchPlaceRequest dan metode callback jenis GMSPlaceResultCallback.

Objek GMSFetchPlaceRequest menentukan:

  • (Wajib) ID tempat, ID unik untuk tempat di database Google Places dan Google Maps.
  • (Wajib) Daftar kolom yang akan ditampilkan dalam objek GMSPlace, juga disebut mask kolom, seperti yang ditentukan oleh GMSPlaceProperty. Jika Anda tidak menentukan setidaknya satu kolom dalam daftar kolom, atau jika Anda menghilangkan daftar kolom, panggilan akan menampilkan error.
  • (Opsional) Kode wilayah yang digunakan untuk memformat respons.
  • (Opsional) Token sesi yang digunakan untuk mengakhiri sesi Autocomplete (Baru).

Membuat permintaan Place Details

Contoh ini mendapatkan tempat berdasarkan ID, dengan meneruskan parameter berikut:

  • ID tempat ChIJV4k8_9UodTERU5KXbkYpSYs.
  • Daftar kolom yang menentukan untuk menampilkan nama tempat dan URL situs.
  • GMSPlaceResultCallback untuk menangani hasilnya.

API memanggil metode callback yang ditentukan, dengan meneruskan objek GMSPlace. Jika tempat tidak ditemukan, objek tempat akan nol.

Swift

// A hotel in Saigon with an attribution.
let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"

// Specify the place data types to return.
let myProperties = [GMSPlaceProperty.name, GMSPlaceProperty.website].map {$0.rawValue}

// Create the GMSFetchPlaceRequest object.
let fetchPlaceRequest = GMSFetchPlaceRequest(placeID: placeID, placeProperties: myProperties, sessionToken: nil)

client.fetchPlace(with: fetchPlaceRequest, callback: {
  (place: GMSPlace?, error: Error?) in
  guard let place, error == nil else { return }
  print("Place found: \(String(describing: place.name))")
})

Objective-C

// A hotel in Saigon with an attribution.
NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs";

// Specify the place data types to return.
NSArray<NSString *> *myProperties = @[GMSPlacePropertyName, GMSPlacePropertyWebsite];

// Create the GMSFetchPlaceRequest object.
GMSFetchPlaceRequest *fetchPlaceRequest = [[GMSFetchPlaceRequest alloc] initWithPlaceID:placeID placeProperties: myProperties sessionToken:nil];

[placesClient fetchPlaceWithRequest: fetchPlaceRequest callback: ^(GMSPlace *_Nullable place, NSError *_Nullable error) {
    if (error != nil) {
      NSLog(@"An error occurred %@", [error localizedDescription]);
      return;
    } else {
    NSLog(@"Place Found: %@", place.name);
    NSLog(@"The place URL: %@", place.website);
  }
}];

GooglePlacesSwift

// A hotel in Saigon with an attribution.
let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"
let fetchPlaceRequest = FetchPlaceRequest(
  placeID: placeID,
  placeProperties: [.name, .website]
)
switch await placesClient.fetchPlace(with: fetchPlaceRequest) {
case .success(let place):
  // Handle place
case .failure(let placesError):
  // Handle error
}

Respons Place Details

Place Details menampilkan objek GMSPlace yang berisi detail tentang tempat tersebut. Hanya kolom yang ditentukan dalam daftar kolom yang diisi di objek GMSPlace.

Bersama dengan kolom data, objek GMSPlace dalam respons berisi fungsi anggota berikut:

  • isOpen menghitung apakah suatu tempat buka pada waktu tertentu.
  • isOpenAtDate menghitung apakah tempat buka pada tanggal tertentu atau tidak.

Parameter wajib

Gunakan objek GMSFetchPlaceRequest untuk menentukan parameter yang diperlukan.

ID Tempat

ID tempat yang digunakan di Places SDK for iOS adalah ID yang sama seperti yang digunakan di Places API, Places SDK for Android, dan Google API lainnya. Setiap ID tempat hanya dapat merujuk ke satu tempat, tetapi satu tempat bisa memiliki lebih dari satu ID tempat.

Ada keadaan yang dapat menyebabkan suatu tempat mendapatkan ID tempat baru. Misalnya, hal ini bisa terjadi jika bisnis pindah ke lokasi baru.

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

Daftar kolom

Saat meminta detail tempat, Anda harus menentukan data yang akan ditampilkan dalam objek GMSPlace untuk tempat sebagai mask kolom. Untuk menentukan mask kolom, teruskan array nilai dari GMSPlaceProperty ke objek GMSFetchPlaceRequest. Penyamaran kolom adalah praktik desain yang baik untuk memastikan Anda tidak meminta data yang tidak perlu, yang akan membantu menghindari waktu pemrosesan dan biaya penagihan yang tidak perlu.

Tentukan satu atau beberapa kolom berikut:

  • Kolom berikut memicu SKU Place Details (ID Only):

    GMSPlacePropertyPlaceID, GMSPlacePropertyName, GMSPlacePropertyPhotos

  • Kolom berikut memicu SKU Place Details (Location Only):

    GMSPlacePropertyAddressComponents, GMSPlacePropertyFormattedAddress, GMSPlacePropertyCoordinate, GMSPlacePropertyPlusCode, GMSPlacePropertyTypes, GMSPlacePropertyViewport

  • Kolom berikut memicu SKU Place Details (Basic):

    GMSPlacePropertyBusinessStatus, GMSPlacePropertyIconBackgroundColor, GMSPlacePropertyIconImageURL, GMSPlacePropertyUTCOffsetMinutes, GMSPlacePropertyWheelchairAccessibleEntrance

  • Kolom berikut memicu SKU Place Details (Advanced):

    GMSPlacePropertyCurrentOpeningHours, GMSPlacePropertySecondaryOpeningHours, GMSPlacePropertyPhoneNumber, GMSPlacePropertyPriceLevel, GMSPlacePropertyRating, GMSPlacePropertyOpeningHours, GMSPlacePropertyUserRatingsTotal, GMSPlacePropertyWebsite

  • Kolom berikut memicu SKU Place Details (Preferred):

    GMSPlacePropertyCurbsidePickup, GMSPlacePropertyDelivery, GMSPlacePropertyDineIn, GMSPlacePropertyEditorialSummary, GMSPlacePropertyReservable, GMSPlacePropertyReviews, GMSPlacePropertyServesBeer, GMSPlacePropertyServesBreakfast, GMSPlacePropertyServesBrunch, GMSPlacePropertyServesDinner, GMSPlacePropertyServesLunch, GMSPlacePropertyServesVegetarianFood, GMSPlacePropertyServesWine, GMSPlacePropertyTakeout

Contoh berikut meneruskan daftar dua nilai kolom untuk menentukan bahwa objek GMSPlace yang ditampilkan oleh permintaan berisi kolom name dan placeID:

Swift

// Specify the place data types to return.
let fields: [GMSPlaceProperty] = [.placeID, .name]
  

Objective-C

// Specify the place data types to return.
NSArray<GMSPlaceProperty *> *fields = @[GMSPlacePropertyPlaceID, GMSPlacePropertyName];
  

GooglePlacesSwift

// Specify the place data types to return.
let fields: [PlaceProperty] = [.placeID, .displayName]
    

Parameter opsional

Gunakan objek GMSFetchPlaceRequest untuk menentukan parameter opsional.

regionCode

Kode wilayah yang digunakan untuk memformat respons, yang ditetapkan sebagai nilai kode CLDR dua karakter. Parameter ini juga dapat memiliki efek bias pada hasil pencarian. Tidak ada nilai default.

Jika nama negara untuk kolom alamat dalam respons cocok dengan kode wilayah, kode negara akan dihapus dari alamat.

Sebagian besar kode CLDR identik dengan kode ISO 3166-1, dengan beberapa pengecualian. Misalnya, ccTLD Inggris Raya adalah "uk" (.co.uk) sedangkan kode ISO 3166-1-nya adalah "gb" (secara teknis untuk entitas "Inggris Raya dan Irlandia Utara"). Parameter ini dapat memengaruhi hasil berdasarkan hukum yang berlaku.

sessionToken

Token sesi adalah string buatan pengguna yang melacak panggilan Autocomplete (Baru) sebagai "sesi". Autocomplete (Baru) menggunakan token sesi untuk mengelompokkan fase kueri dan pemilihan tempat dari penelusuran pelengkapan otomatis pengguna ke dalam sesi terpisah untuk tujuan penagihan. Token sesi diteruskan ke panggilan Place Details (Baru) yang mengikuti panggilan Autocomplete (Baru). Untuk informasi lebih lanjut, lihat Token sesi.

Menampilkan atribusi dalam aplikasi Anda

Saat aplikasi menampilkan informasi yang diperoleh dari GMSPlacesClient, seperti foto dan ulasan, aplikasi juga harus menampilkan atribusi yang diperlukan.

Misalnya, properti reviews objek GMSPlacesClient berisi array hingga lima objek GMSPlaceReview. Setiap objek GMSPlaceReview dapat berisi atribusi dan atribusi penulis. Jika menampilkan ulasan di aplikasi, Anda juga harus menampilkan atribusi atau atribusi penulis.

Untuk informasi selengkapnya, lihat dokumentasi tentang atribusi.