Mevcut Yer

Platform seçin: Android iOS

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.

  1. Konum yetkilendirmesi isteyin
  2. Kullanım sınırları
  3. Geçerli konumu alma
  4. 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:

  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

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.