iOS için Places SDK'sını kullanarak cihazın şu anda bulunduğu yeri keşfedebilirsiniz. Bu, cihazın şu anda bildirilen konumda bulunduğu yerdir. Yerlere örnek olarak yerel işletmeler, önemli yerler ve coğrafi konumlar verilebilir.
- Konum yetkilendirmesi isteyin
- Kullanım sınırları
- Mevcut konumu alma
- İlişkilendirmeleri uygulamanızda görüntüleme
Konum yetkilendirme isteğinde bulunma
Uygulamanız GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
kullanıyorsa konum hizmetlerini kullanmak için izin istemelidir. Kullanıcılara
neden konum hizmetlerine ihtiyacınız olduğunu bildiren dizeyi tanımlamak için Info.plist
dosyanıza NSLocationWhenInUseUsageDescription
anahtarını ekleyin. Örnek:
<key>NSLocationWhenInUseUsageDescription</key> <string>Show your location on the map</string>
Uygulama arka plandayken, onay iletişim kutusunu tetiklemeden findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
çağrısı yapmak isterseniz aramayı yapmadan önce aşağıdaki adımları uygulayın:
NSLocationAlwaysUsageDescription
anahtarınıInfo.plist
dosyanıza ekleyin.- Yöntemden önce,
CLLocationManager
örneğinderequestAlwaysAuthorization
yöntemini çağırın.
CLLocationManager
tarafından aşağıda belirtilen şekilde yetkilendirme isteğinde bulunun:
Swift
locationManager.requestAlwaysAuthorization()
Objective-C
[self.locationManager requestAlwaysAuthorization];
Geçerli konum alınıyor
Yerel işletmeyi veya cihazın şu anda bulunduğu başka bir yeri bulmak için
GMSPlacesClient
findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
numaralı telefonu arayın. Aşağıdaki parametreleri ekleyin:
- Döndürülecek veri türlerini belirten bir veya daha fazla
GMSPlaceField
. Bu parametreyi çıkarırsanız olası TÜM alanlar döndürülür ve buna göre faturalandırılırsınız. Bu, yalnızca Yer Ayrıntıları istekleri için geçerlidir. - Sonuçları işleyecek bir geri çağırma yöntemi.
Alanlar, Yer Arama sonuçlarına karşılık gelir ve üç faturalandırma kategorisine ayrılır: Temel, İletişim ve Atmosfer. Temel alanlar, temel ücret üzerinden faturalandırılır ve ek ücret alınmaz. Kişi ve Atmosfer alanları daha yüksek ücretle faturalandırılır. Yer verileri isteklerinin nasıl faturalandırıldığı hakkında daha fazla bilgi için Kullanım ve Faturalandırma bölümüne bakın.
API, belirtilen geri çağırma yöntemini çağırarak bir dizi GMSPlaceLikelihood
nesnesi döndürür.
Her GMSPlaceLikelihood
nesnesi bir yeri temsil eder. Her yer için, sonuç, yerin doğru olduğunu ihtimalinin göstergesidir. Daha yüksek bir değer, yerin en iyi eşleşme olasılığının daha yüksek olduğu anlamına gelir. Cihazın konumuna karşılık gelen bilinen bir yer yoksa arabellek boş olabilir.
Aşağıdaki kod örneği, cihazın bulunma olasılığı en yüksek olan yerlerin listesini alır ve her bir yerin adını ve olasılığını kaydeder.
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); } } }];
Olasılık değerleriyle ilgili notlar:
- Olasılık, yerin tek bir istek için döndürülen yerler listesinde en iyi eşleşme olma olasılığını sağlar. Farklı isteklerdeki olasılıkları karşılaştıramazsınız.
- Olasılığın değeri 0 ile 1.0 arasında olur.
- Döndürülen
GMSPlaceLikelihood
nesneleri dizisindeki olasılıkların toplamı her zaman 1,0'dan küçük veya 1,0'a eşittir. Toplamın 1.0 olması gerekmediğini unutmayın.
Örneğin, doğru yerin A Yeri, %35'lik bir olasılıkla B Konumu'nun% 35'ini göstermek için olasılık dizisinde iki üye vardır: A Yeri, 0,55 ve B Yeri 0,35'tir.
İlişkilendirmeleri uygulamanızda gösterme
Uygulamanızda GMSPlacesClient
findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
'ten elde edilen bilgiler gösterildiğinde ilişkilendirmelerin de gösterilmesi gerekir. İlişkilendirmeler hakkında daha fazla bilgi edinin.