Mevcut Yer

Platform seçin: Android iOS

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.

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

  1. NSLocationAlwaysUsageDescription anahtarını Info.plist dosyanıza ekleyin.
  2. Yöntemden önce, CLLocationManager örneğinde requestAlwaysAuthorization 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.