Dengan menggunakan Places SDK for iOS, Anda dapat menemukan tempat saat ini ditemukan. Yaitu, tempat di lokasi yang dilaporkan saat ini. Contoh tempat antara lain 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 aplikasi Anda menggunakan
GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
,
aplikasi Anda harus meminta izin untuk menggunakan layanan lokasi. Tambahkan
Kunci NSLocationWhenInUseUsageDescription
ke Info.plist
Anda
, untuk menentukan string yang memberi tahu pengguna mengapa Anda memerlukan lokasi
layanan IT perusahaan mereka. Contoh:
<key>NSLocationWhenInUseUsageDescription</key> <string>Show your location on the map</string>
Jika Anda ingin menelepon
findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
saat
aplikasi berada di latar belakang, tanpa memicu dialog konfirmasi, ambil
langkah-langkah berikut sebelum melakukan panggilan:
- Tambahkan kunci
NSLocationAlwaysUsageDescription
ke fileInfo.plist
Anda. - Panggil
requestAlwaysAuthorization
pada instanceCLLocationManager
mana pun sebelum memanggil metode.
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
lokasi, panggil
GMSPlacesClient
findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
Sertakan
parameter berikut:
- Satu atau beberapa
GMSPlaceField
, yang menentukan jenis data untuk ditampilkan. Jika Anda menghilangkan parameter ini, SEMUA kolom yang memungkinkan akan ditampilkan, dan Anda akan ditagih sebagaimana mestinya. Ini hanya berlaku untuk permintaan Place Details. - Metode callback untuk menangani hasil.
Kolom sesuai dengan hasil Place Search, dan dibagi menjadi tiga kategori penagihan: Dasar, Kontak, dan Atmosfer. Kolom Basic ditagih dengan tarif dasar dan tidak dikenai biaya tambahan tambahan. Kolom Contact dan Atmosphere ditagih dengan tarif lebih tinggi. Untuk informasi selengkapnya cara penagihan permintaan data Tempat, lihat Penggunaan dan Penagihan.
API akan memanggil metode callback yang ditetapkan, yang menampilkan array
GMSPlaceLikelihood
objek terstruktur dalam jumlah besar.
Masing-masing
GMSPlaceLikelihood
merepresentasikan suatu tempat. Untuk setiap tempat, hasilnya mencakup sebuah
indikasi kemungkinan bahwa tempat tersebut adalah tempat yang benar. Nilai yang lebih tinggi
berarti semakin besar kemungkinan tempat tersebut adalah yang paling cocok. {i>Buffer<i} mungkin
kosong, jika tidak ada tempat yang diketahui sesuai dengan lokasi perangkat.
Contoh kode berikut mengambil daftar tempat perangkat berada kemungkinan besar berada, dan mencatat nama dan 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 memberikan probabilitas relatif tempat yang paling cocok dalam daftar tempat yang dikembalikan untuk permintaan tunggal. Anda tidak dapat membandingkan kemungkinan pada permintaan yang berbeda.
- Nilai kemungkinan akan berada antara 0 dan 1,0.
- Jumlah kemungkinan dalam {i>array<i} yang dikembalikan dari
GMSPlaceLikelihood
objek selalu kurang dari atau sama dengan 1,0. Perhatikan bahwa penjumlahan bukanlah tentu saja 1,0.
Misalnya, untuk mewakili 55% kemungkinan bahwa tempat yang benar adalah Tempat A, dan kemungkinan 35% adalah Tempat B, array kemungkinan memiliki dua anggota: Tempatkan A dengan kemungkinan 0,55 dan Tempatkan B dengan kemungkinan 0,35.
Menampilkan atribusi dalam aplikasi Anda
Saat aplikasi Anda menampilkan informasi yang diperoleh dari
GMSPlacesClient
findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
, aplikasi
juga harus menampilkan atribusi. Baca selengkapnya tentang
atribusi.