iOS için Yerler SDK'sını kullanarak cihazın o anda bulunduğu yeri keşfedebilirsiniz. Diğer bir deyişle, cihazın bildirilen konumdaki yeridir. Yerlere örnek olarak yerel işletmeler, önemli yerler ve coğrafi konumlar verilebilir.
- Konum yetkilendirmesi isteyin
- Kullanım sınırları
- Geçerli konumu alma
- Uygulamanızda görüntülü ilişkilendirmeler
Konum yetkilendirmesi isteniyor
GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
kullanılıyorsa uygulamanızın konum hizmetlerini kullanmak için izin istemesi gerekir. Kullanıcıya konum hizmetlerine neden ihtiyaç duyduğunuzu bildiren dizeyi tanımlamak için NSLocationWhenInUseUsageDescription
anahtarını Info.plist
dosyanıza ekleyin. Örneğin:
<key>NSLocationWhenInUseUsageDescription</key> <string>Show your location on the map</string>
Uygulama arka plandayken bir onay iletişim kutusunu tetiklemeden
findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
yöntemini çağırmak istiyorsanız çağrıyı yapmadan önce aşağıdaki adımları uygulayın:
NSLocationAlwaysUsageDescription
anahtarınıInfo.plist
dosyanıza ekleyin.- Yöntemi çağırmadan önce herhangi bir
CLLocationManager
örneğinderequestAlwaysAuthorization
yöntemini çağırın.
CLLocationManager
adlı kullanıcıdan aşağıdaki şekilde yetkilendirme isteyin:
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 atlarsanız mümkün olan TÜM alanlar döndürülür ve buna göre faturalandırılırsınız. Bu yalnızca Yer Ayrıntısı istekleri için geçerlidir. - Sonuçları işlemek için bir geri çağırma yöntemi.
Alanlar, Rehber Arama sonuçlarına karşılık gelir ve üç faturalandırma kategorisine ayrılır: Temel, Kişi ve Atmosfer. Temel alanlar taban ücretten faturalandırılır ve ek ücret ödemez. Kişi ve Atmosfer alanları daha yüksek ücretle faturalandırılır. Yer verisi 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 GMSPlaceLikelihood
nesnelerinden oluşan bir dizi döndürür.
Her GMSPlaceLikelihood
nesnesi bir yeri temsil eder. Sonuçta her bir yer için doğru yerin doğru olma olasılığına dair bir gösterge bulunur. Değer yükseldikçe yerin en iyi eşleşme olma ihtimali de artar. Cihaz konumuna karşılık gelen bilinen bir yer yoksa arabellek boş olabilir.
Aşağıdaki kod örneği, cihazın bulunma olasılığının en yüksek olduğu yerlerin listesini alıp her bir yerin adı ile olasılığını günlüğe 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 listesindeki en iyi eşleşme olduğuna dair göreli bir olasılık sağlar. Farklı isteklerdeki olasılıkları karşılaştıramazsınız.
- Olasılık 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 olma olasılığını% 55 ve B yeri olma ihtimalini% 35 olarak temsil etmek için olasılık dizisinin iki üyesi vardır: A yeri 0,55 ihtimalle A yeri ve 0, 35 olasılıkla B yeri.
İlişkilendirmeleri uygulamanızda gösterme
Uygulamanız GMSPlacesClient
findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:
'ten edinilen bilgileri görüntülediğinde, ilişkilendirmeleri de göstermelidir. İlişkilendirmeler hakkında daha fazla bilgi edinin.