Mevcut Yer

Platform seçin: Android iOS

iOS için Yerler SDK'sını kullanarak cihazın şu anda bulunduğu yeri keşfedebilirsiniz. Yani, cihazın mevcut olarak bildirilmiş olduğu konumdaki yer. Yer örnekleri arasında yerel işletmeler, önemli yerler ve coğrafi konumlar yer alır.

  1. Konum izni isteme
  2. Kullanım sınırları
  3. Geçerli konumu alma
  4. Uygulamanızda ilişkilendirmeleri görüntüleme

Konum yetkilendirmesi isteme

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: çağrısı yapmak 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 CLLocationManager örneğinde requestAlwaysAuthorization'ü çağırın.

CLLocationManager'ten aşağıdaki şekilde yetkilendirme isteyin:

Swift

    locationManager.requestAlwaysAuthorization()
    

Objective-C

    [self.locationManager requestAlwaysAuthorization];
    

Mevcut konumu alma

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ürlerinin belirtildiği 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ıları istekleri için geçerlidir.
  • Sonuçları işleyen bir geri çağırma yöntemi.

Alanlar yer arama sonuçlarına karşılık gelir ve üç faturalandırma kategorisine ayrılmıştır: Temel, Kişi ve Atmosfer. Temel alanlar taban fiyat üzerinden faturalandırılır ve ek ücret alınmaz. Kişi ve Atmosfer alanları daha yüksek bir ü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 başlıklı makaleyi inceleyin.

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

Her GMSPlaceLikelihood nesnesi bir yeri temsil eder. Sonuçta her bir yer için, doğru yer olma olasılığı belirtilir. Daha yüksek bir değer, yerin en iyi eşleşme olma olasılığının daha yüksek olduğunu gösterir. 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 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 yerle en iyi eşleşme olma olasılığını gösterir. Farklı isteklerin olasılıklarını karşılaştıramazsınız.
  • Olasılık değeri 0 ile 1,0 arasında olacaktır.
  • Döndürülen GMSPlaceLikelihood obje dizisindeki olasılıkların toplamı her zaman 1,0'dan az veya 1,0'a eşittir. Toplam değerin 1,0 olmayabileceğini unutmayın.

Örneğin, doğru yerin A Yeri olma olasılığının% 55 ve B Yeri olma olasılığının% 35 olduğunu göstermek için olasılık dizisinin iki üyesi vardır: olasılığı 0,55 olan A Yeri ve olasılığı 0, 35 olan B Yeri.

Uygulamanızda ilişkilendirmeleri görüntüleme

Uygulamanız GMSPlacesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields: kaynağından elde edilen bilgileri görüntülerken ilişkilendirmeleri de görüntülemelidir. İlişkilendirmeler hakkında daha fazla bilgi edinin.