Mevcut Yer (Eski)

iOS için Yerler SDK'sını kullanarak cihazın o anda bulunduğu yeri keşfedebilirsiniz. Yani cihazın şu anda bildirilen konumundaki yer. Yerlere örnek olarak yerel işletmeler, önemli yerler ve coğrafi konumlar verilebilir.

  1. Konum yetkilendirmesi isteme
  2. Kullanım sınırları
  3. Mevcut konumu alma
  4. Uygulamanızda ilişkilendirmeleri gösterme

Konum yetkilendirmesi isteniyor

Uygulamanız GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields: kullanıyorsa konum hizmetlerini kullanmak için izin istemelidir. 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 onay iletişim kutusunu tetiklemeden findPlaceLikelihoodsFromCurrentLocationWithPlaceFields: numarasını aramak istiyorsanız aramayı yapmadan önce aşağıdaki adımları uygulayın:

  1. NSLocationAlwaysUsageDescription anahtarını Info.plist dosyanıza ekleyin.
  2. Yöntemi çağırmadan önce herhangi bir CLLocationManager örneğinde requestAlwaysAuthorization 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

Cihazın şu anda bulunduğu yerel işletmeyi veya başka bir yeri bulmak için GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields: yöntemini çağırın. Aşağıdaki parametreleri ekleyin:

  • Hangi veri türlerinin döndürüleceğini belirten bir veya daha fazla GMSPlaceField. Bu parametreyi atlarsanı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şlemek için 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, taban ücret üzerinden faturalandırılır ve ek ücret alınmaz. İletişim ve Atmosfer alanları daha yüksek bir ü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 başlıklı makaleyi inceleyin.

API, belirtilen geri çağırma yöntemini çağırarak bir GMSPlaceLikelihood nesnesi dizisi döndürür.

Her bir GMSPlaceLikelihood nesnesi bir yeri temsil eder. Her yer için sonuç, yerin doğru yer olma olasılığının bir göstergesini içerir. Daha yüksek bir değer, yerin en iyi eşleşme olma 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ığının en yüksek olduğu yerlerin listesini alır ve her yerin adını ve 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, tek bir istek için döndürülen yerler listesinde en iyi eşleşmenin yer olma olasılığını gösterir. 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 buna eşittir. Toplamın 1,0 olması gerekmez.

Örneğin, doğru yerin A yeri olma olasılığının% 55, B yeri olma olasılığının ise% 35 olduğunu göstermek için olasılık dizisinde iki üye bulunur: 0,55 olasılıkla A yeri ve 0,35 olasılıkla B yeri.

Uygulamanızda ilişkilendirmeleri gösterme

Uygulamanız GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:'dan elde edilen bilgileri gösterdiğinde ilişkilendirmeleri de göstermelidir. İlişkilendirmeler hakkında daha fazla bilgi edinin.