Dengan menggunakan Places SDK for iOS, Anda dapat menemukan tempat perangkat saat ini berada. Yaitu tempat di lokasi perangkat yang saat ini dilaporkan. Contoh tempat meliputi bisnis lokal, lokasi menarik, dan lokasi geografis.
- Meminta otorisasi lokasi
- Batas penggunaan
- Mendapatkan lokasi saat ini
- Menampilkan atribusi di aplikasi Anda
Meminta otorisasi lokasi
Jika menggunakan
GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
,
aplikasi Anda harus meminta izin untuk menggunakan layanan lokasi. Tambahkan kunci NSLocationWhenInUseUsageDescription
ke file Info.plist
Anda, untuk menentukan string yang memberi tahu pengguna alasan Anda memerlukan layanan lokasi. Contoh:
<key>NSLocationWhenInUseUsageDescription</key> <string>Show your location on the map</string>
Jika Anda ingin memanggil findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
saat aplikasi berada di latar belakang, tanpa memicu dialog konfirmasi, lakukan langkah-langkah berikut sebelum melakukan panggilan:
- Tambahkan kunci
NSLocationAlwaysUsageDescription
ke fileInfo.plist
. - Panggil
requestAlwaysAuthorization
pada instanceCLLocationManager
apa pun sebelum memanggil metode tersebut.
Minta otorisasi dari CLLocationManager
sebagai berikut:
Swift
locationManager.requestAlwaysAuthorization()
Objective-C
[self.locationManager requestAlwaysAuthorization];
Mendapatkan lokasi saat ini
Untuk menemukan bisnis lokal atau tempat lain tempat perangkat saat ini
berada, panggil
GMSPlacesClient
findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
. Sertakan parameter berikut:
- Satu atau beberapa
GMSPlaceField
, yang menentukan jenis data yang akan ditampilkan. Jika Anda menghilangkan parameter ini, SEMUA kolom yang mungkin akan ditampilkan, dan Anda akan ditagih sebagaimana mestinya. Ini hanya berlaku untuk permintaan Place Details. - Metode callback untuk menangani hasilnya.
Kolom sesuai dengan hasil Place Search, dan dibagi menjadi tiga kategori penagihan: Basic, Contact, dan Atmosphere. Kolom dasar ditagih dengan tarif dasar, dan tidak dikenakan biaya tambahan. Kolom Kontak dan Atmosfer ditagih dengan tarif yang lebih tinggi. Untuk informasi selengkapnya tentang cara penagihan permintaan data Tempat, lihat Penggunaan dan Penagihan.
API memanggil metode callback yang ditentukan, menampilkan array objek GMSPlaceLikelihood
.
Setiap objek
GMSPlaceLikelihood
mewakili tempat. Untuk setiap tempat, hasilnya menyertakan indikasi kemungkinan bahwa tempat tersebut benar. Nilai yang lebih tinggi berarti semakin besar kemungkinan tempat ini memiliki kecocokan terbaik. Buffer mungkin kosong, jika tidak ada tempat yang diketahui sesuai dengan lokasi perangkat.
Contoh kode berikut mengambil daftar tempat yang kemungkinan besar merupakan lokasi perangkat, dan mencatat nama serta kemungkinan untuk setiap tempat.
Swift
// Specify the place data types to return. let fields: GMSPlaceField = GMSPlaceField(rawValue: UInt(GMSPlaceField.name.rawValue) | UInt(GMSPlaceField.placeID.rawValue))! placesClient?.findPlaceLikelihoodsFromCurrentLocation(withPlaceFields: fields, callback: { (placeLikelihoodList: Array<GMSPlaceLikelihood>?, error: Error?) in if let error = error { print("An error occurred: \(error.localizedDescription)") return } if let placeLikelihoodList = placeLikelihoodList { for likelihood in placeLikelihoodList { let place = likelihood.place print("Current Place name \(String(describing: place.name)) at likelihood \(likelihood.likelihood)") print("Current PlaceID \(String(describing: place.placeID))") } } })
Objective-C
// Specify the place data types to return. GMSPlaceField fields = (GMSPlaceFieldName | GMSPlaceFieldPlaceID); [_placesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:fields callback:^(NSArray<GMSPlaceLikelihood *> * _Nullable likelihoods, NSError * _Nullable error) { if (error != nil) { NSLog(@"An error occurred %@", [error localizedDescription]); return; } if (likelihoods != nil) { for (GMSPlaceLikelihood *likelihood in likelihoods) { GMSPlace *place = likelihood.place; NSLog(@"Current place name: %@", place.name); NSLog(@"Place ID: %@", place.placeID); } } }];
Catatan tentang nilai kemungkinan:
- Kemungkinan ini memberikan probabilitas relatif tempat yang paling cocok dalam daftar tempat yang ditampilkan untuk satu permintaan. Anda tidak dapat membandingkan kemungkinan di berbagai permintaan.
- Nilai kemungkinan akan berada antara 0 dan 1,0.
- Jumlah kemungkinan dalam array yang ditampilkan dari objek
GMSPlaceLikelihood
selalu kurang dari atau sama dengan 1,0. Perhatikan bahwa jumlah tersebut tidak harus 1,0.
Misalnya, untuk merepresentasikan kemungkinan 55% bahwa tempat yang benar adalah Tempat A, dan kemungkinan 35% bahwa Tempat B, array kemungkinan memiliki dua anggota: Tempat A dengan kemungkinan 0,55 dan Tempat B dengan kemungkinan 0,35.
Menampilkan atribusi di aplikasi
Saat aplikasi Anda menampilkan informasi yang diperoleh dari
GMSPlacesClient
findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
, aplikasi
juga harus menampilkan atribusi. Baca selengkapnya tentang
atribusi.