Yer Ayrıntıları (Yeni)

Platform seçin: Android iOS JavaScript Web Hizmeti

iOS için Yerler SDK'sı (Yeni), uygulamanıza yer adı ve adresi, enlem/boylam koordinatları olarak belirtilen coğrafi konum, yer türü (ör. gece kulübü, evcil hayvan mağazası, müze) ve daha fazlası dahil olmak üzere yerler hakkında zengin bilgiler sağlar. Belirli bir yerle ilgili bu bilgilere erişmek için yer kimliğini kullanabilirsiniz. Yer kimliği, bir yeri benzersiz şekilde tanımlayan kararlı bir tanımlayıcıdır.

Yer ayrıntılarını alma

GMSPlace sınıfı, Yer Veri Alanları (Yeni) bölümünde gösterilen tüm veri alanları da dahil olmak üzere belirli bir yerle ilgili bilgileri içerir. GMSPlacesClient fetchPlaceWithRequest: yöntemini çağırarak, GMSFetchPlaceRequest nesnesi ve GMSPlaceResultCallback türündeki bir geri çağırma yöntemi geçirerek GMSPlace nesnesi alın.

GMSFetchPlaceRequest nesnesi şunları belirtir:

  • (Zorunlu) Google Rehber veritabanında ve Google Haritalar'da bir yerin benzersiz tanımlayıcısıdır.
  • (Zorunlu) GMSPlaceProperty tarafından tanımlandığı şekliyle GMSPlace nesnesinde döndürülecek alanların listesi (alan maskesi olarak da bilinir). Alan listesinde en az bir alan belirtmezseniz veya alan listesini atlarsanız çağrı bir hata döndürür.
  • (İsteğe bağlı) Yanıtı biçimlendirmek için kullanılan bölge kodu.
  • (İsteğe bağlı) Otomatik Tamamlama (Yeni) oturumunu sonlandırmak için kullanılan oturum jetonu.

Yer ayrıntıları isteği gönderme

Bu örnekte, aşağıdaki parametreler ile bir yer kimliğine göre yer alınır:

  • ChIJV4k8_9UodTERU5KXbkYpSYs yer kimliği.
  • Yer adını ve web sitesi URL'sini döndürmeyi belirten bir alan listesi.
  • Sonuçları işlemek için bir GMSPlaceResultCallback

API, belirtilen geri çağırma yöntemini çağırarak bir GMSPlace nesnesi iletir. Yer bulunamazsa yer nesnesi null olur.

Swift

// A hotel in Saigon with an attribution.
let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"

// Specify the place data types to return.
let myProperties = [GMSPlaceProperty.name, GMSPlaceProperty.website].map {$0.rawValue}

// Create the GMSFetchPlaceRequest object.
let fetchPlaceRequest = GMSFetchPlaceRequest(placeID: placeID, placeProperties: myProperties, sessionToken: nil)

client.fetchPlace(with: fetchPlaceRequest, callback: {
  (place: GMSPlace?, error: Error?) in
  guard let place, error == nil else { return }
  print("Place found: \(String(describing: place.name))")
})

Objective-C

// A hotel in Saigon with an attribution.
NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs";

// Specify the place data types to return.
NSArray<NSString *> *myProperties = @[GMSPlacePropertyName, GMSPlacePropertyWebsite];

// Create the GMSFetchPlaceRequest object.
GMSFetchPlaceRequest *fetchPlaceRequest = [[GMSFetchPlaceRequest alloc] initWithPlaceID:placeID placeProperties: myProperties sessionToken:nil];

[placesClient fetchPlaceWithRequest: fetchPlaceRequest callback: ^(GMSPlace *_Nullable place, NSError *_Nullable error) {
    if (error != nil) {
      NSLog(@"An error occurred %@", [error localizedDescription]);
      return;
    } else {
    NSLog(@"Place Found: %@", place.name);
    NSLog(@"The place URL: %@", place.website);
  }
}];

iOS için Yerler Swift SDK'sı (Önizleme)

// A hotel in Saigon with an attribution.
let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"
let fetchPlaceRequest = FetchPlaceRequest(
  placeID: placeID,
  placeProperties: [.name, .website]
)
switch await placesClient.fetchPlace(with: fetchPlaceRequest) {
case .success(let place):
  // Handle place
case .failure(let placesError):
  // Handle error
}

Yer Ayrıntıları yanıtı

Yer Ayrıntıları, yerle ilgili ayrıntıları içeren bir GMSPlace nesnesi döndürür. GMSPlace nesnesine yalnızca alan listesinde belirtilen alanlar doldurulur.

Açık durumu alma

GMSPlacesClient nesnesi, çağrıda belirtilen saate göre yerin şu anda açık olup olmadığını belirten bir yanıt döndüren isOpenWithRequest adlı bir üye işlevi (Swift'te isOpenRequest ve GooglePlacesSwift'te isPlaceOpenRequest) içerir.

Bu yöntem, aşağıdakileri içeren GMSPlaceIsOpenWithRequest türündeki tek bir bağımsız değişken alır:

  • Bir GMSPlace nesnesi veya yer kimliğini belirten bir dize. Yer nesnesini gerekli alanlarla oluşturma hakkında daha fazla bilgi için Yer ayrıntıları başlıklı makaleyi inceleyin.
  • Kontrol etmek istediğiniz zamanı belirten isteğe bağlı bir NSDate (Obj-C) veya Date (Swift) nesnesi. Saat belirtilmezse varsayılan olarak şu anki saat kullanılır.
  • Yanıtı işleyen bir GMSPlaceOpenStatusResponseCallback yöntemi.
  • >

GMSPlaceIsOpenWithRequest yöntemi için GMSPlace nesnesinde aşağıdaki alanların ayarlanması gerekir:

  • GMSPlacePropertyUTCOffsetMinutes
  • GMSPlacePropertyBusinessStatus
  • GMSPlacePropertyOpeningHours
  • GMSPlacePropertyCurrentOpeningHours
  • GMSPlacePropertySecondaryOpeningHours

Bu alanlar Place nesnesinde sağlanmazsa veya bir yer kimliği iletiyorsanız yöntem bunları almak için GMSPlacesClient GMSFetchPlaceRequest: kullanır.

isOpenWithRequest yanıt

isOpenWithRequest, işletmenin açık, kapalı veya durumunun bilinmediğini belirten status adlı bir boole değeri içeren bir GMSPlaceIsOpenResponse nesnesi döndürür.

Dil Açıksa değer Kapalıysa değer Durum bilinmiyorsa değer
Swift .open .closed .unknown
Objective-C GMSPlaceOpenStatusOpen GMSPlaceOpenStatusClosed GMSPlaceOpenStatusUnknown
GooglePlacesSwift (Önizleme) true false nil

isOpenWithRequest için faturalandırma

  • GMSPlacePropertyUTCOffsetMinutes ve GMSPlacePropertyBusinessStatus alanları, Temel Veri SKU'su kapsamında ücretlendirilir. Çalışma saatlerinin geri kalanı Yer Ayrıntıları (Gelişmiş) SKU'su kapsamında ücretlendirilir.
  • GMSPlace nesnenizde önceki bir istekten bu alanlar zaten varsa sizden tekrar ücret alınmaz.

Örnek: GMSPlaceIsOpenWithRequest isteği gönderme

Aşağıdaki örnekte, mevcut bir GMSPlace nesnesi içinde GMSPlaceIsOpenWithRequest değerinin nasıl başlatılacağı gösterilmektedir.

Swift

    let isOpenRequest = GMSPlaceIsOpenRequest(place: place, date: nil)
      GMSPlacesClient.shared().isOpen(with: isOpenRequest) { response, error in
        if let error = error {
          // Handle Error
        }
        switch response.status {
          case .open:
            // Handle open
          case .closed:
            // Handle closed
          case .unknown:
            // Handle unknown
        }
      }
        

Objective-C

          GMSPlaceIsOpenRequest *isOpenRequest = [[GMSPlaceIsOpenRequest alloc] initWithPlace:place date:nil];
  
          [[GMSPlacesClient sharedClient] isOpenWithRequest:isOpenRequest callback:^(GMSPlaceIsOpenResponse response, NSError *_Nullable error) {
            if (error) {
              // Handle error
            }
  
            switch (response.status) {
              case GMSPlaceOpenStatusOpen:
                // Handle open
              case GMSPlaceOpenStatusClosed:
                // Handle closed
              case GMSPlaceOpenStatusUnknown:
                // Handle unknown
            }
          }];
          

GooglePlacesSwift

          let isOpenRequest = IsPlaceOpenRequest(place: place)
          switch await placesClient.isPlaceOpen(with: isOpenRequest) {
            case .success(let isOpenResponse):
              switch isOpenResponse.status {
                case true:
                  // Handle open
                case false:
                  // Handle closed
                case nil:
                  // Handle unknown
            case .failure(let placesError):
              // Handle error
          }
          

Gerekli parametreler

Zorunlu parametreleri belirtmek için GMSFetchPlaceRequest nesnesini kullanın.

Yer kimliği

iOS için Yerler SDK'sında kullanılan yer kimliği, Places API, Android için Yerler SDK'sı ve diğer Google API'lerinde kullanılanla aynı tanımlayıcıdır. Her yer kimliği yalnızca bir yeri referans alabilir ancak tek bir yerin birden fazla yer kimliği olabilir.

Bir yerin yeni bir yer kimliği almasına neden olabilecek durumlar vardır. Örneğin, bir işletme yeni bir konuma taşınırsa bu durumla karşılaşabilirsiniz.

Bir yer kimliği belirterek yer isteğinde bulunduğunuzda, yanıtta her zaman aynı yeri alacağınızdan emin olabilirsiniz (yer hâlâ mevcutsa). Ancak yanıtın, isteğinizdekinden farklı bir yer kimliği içerebileceğini unutmayın.

Alan listesi

Yer ayrıntılarını istediğinizde, yer için GMSPlace nesnesinde döndürülecek verileri alan maskesi olarak belirtmeniz gerekir. Alan maskesini tanımlamak için GMSPlaceProperty nesnesinden GMSFetchPlaceRequest nesnesine bir değer dizisi iletin. Alan maskeleme, gereksiz veri istemediğinizden emin olmak için iyi bir tasarım uygulamasıdır. Bu sayede gereksiz işlem süresi ve faturalandırma ücretlerinden kaçınabilirsiniz.

Aşağıdaki alanlardan en az birini belirtin:

  • Aşağıdaki alanlar Yer Ayrıntıları (Yalnızca Kimlik) SKU'sunu tetikler:

    GMSPlacePropertyPlaceID, GMSPlacePropertyName, GMSPlacePropertyPhotos

  • Aşağıdaki alanlar Yer Ayrıntıları (Yalnızca Konum) SKU'sunu tetikler:

    GMSPlacePropertyAddressComponents, GMSPlacePropertyFormattedAddress, GMSPlacePropertyCoordinate, GMSPlacePropertyPlusCode, GMSPlacePropertyTypes, GMSPlacePropertyViewport

  • Aşağıdaki alanlar Yer Ayrıntıları (Temel) SKU'sunu tetikler:

    GMSPlacePropertyBusinessStatus, GMSPlacePropertyIconBackgroundColor, GMSPlacePropertyIconImageURL, GMSPlacePropertyUTCOffsetMinutes, GMSPlacePropertyWheelchairAccessibleEntrance

  • Aşağıdaki alanlar Yer Ayrıntıları (Gelişmiş) SKU'sunu tetikler:

    GMSPlacePropertyCurrentOpeningHours, GMSPlacePropertySecondaryOpeningHours, GMSPlacePropertyPhoneNumber, GMSPlacePropertyPriceLevel, GMSPlacePropertyRating, GMSPlacePropertyOpeningHours, GMSPlacePropertyUserRatingsTotal, GMSPlacePropertyWebsite

  • Aşağıdaki alanlar Yer Ayrıntıları (Tercih Edilen) SKU'sunu tetikler:

    GMSPlacePropertyCurbsidePickup, GMSPlacePropertyDelivery, GMSPlacePropertyDineIn, GMSPlacePropertyEditorialSummary, GMSPlacePropertyReservable, GMSPlacePropertyReviews, GMSPlacePropertyServesBeer, GMSPlacePropertyServesBreakfast, GMSPlacePropertyServesBrunch, GMSPlacePropertyServesDinner, GMSPlacePropertyServesLunch, GMSPlacePropertyServesVegetarianFood, GMSPlacePropertyServesWine, GMSPlacePropertyTakeout

Aşağıdaki örnekte, bir istek tarafından döndürülen GMSPlace nesnesinin name ve placeID alanlarını içerdiğini belirtmek için iki alan değerinin listesi iletilmektedir:

Swift

// Specify the place data types to return.
let fields: [GMSPlaceProperty] = [.placeID, .name]
  

Objective-C

// Specify the place data types to return.
NSArray<GMSPlaceProperty *> *fields = @[GMSPlacePropertyPlaceID, GMSPlacePropertyName];
  

iOS için Yerler Swift SDK'sı (Önizleme)

// Specify the place data types to return.
let fields: [PlaceProperty] = [.placeID, .displayName]
    

İsteğe bağlı parametreler

İsteğe bağlı parametreleri belirtmek için GMSFetchPlaceRequest nesnesini kullanın.

regionCode

Yanıtı biçimlendirmek için kullanılan bölge kodu. İki karakterli CLDR kodu değeri olarak belirtilir. Bu parametre, arama sonuçlarında da önyargı etkisi yaratabilir. Varsayılan değer yoktur.

Yanıttaki adres alanının ülke adı bölge koduyla eşleşirse ülke kodu adresten çıkarılır.

CLDR kodlarının çoğu, bazı önemli istisnalar dışında ISO 3166-1 kodlarıyla aynıdır. Örneğin, Birleşik Krallık'ın ccTLD'si "uk" (.co.uk) iken ISO 3166-1 kodu "gb"dir (teknik olarak "Büyük Britanya ve Kuzey İrlanda Birleşik Krallığı" tüzel kişiliği için). Parametre, geçerli yasaya göre sonuçları etkileyebilir.

sessionToken

Oturum jetonları, Otomatik Tamamlama (Yeni) çağrılarını "oturumlar" olarak izleyen, kullanıcı tarafından oluşturulan dizelerdir. Otomatik Tamamlama (Yeni), kullanıcı otomatik tamamlama aramasının sorgu ve yer seçim aşamalarını faturalandırma amacıyla ayrı bir oturumda gruplandırmak için oturum jetonlarını kullanır. Oturum jetonları, Otomatik Tamamlama (Yeni) çağrılarını izleyen Yer Ayrıntıları (Yeni) çağrılarına iletilir. Daha fazla bilgi için Oturum jetonları başlıklı makaleyi inceleyin.

Uygulamanızda ilişkilendirmeleri gösterme

Uygulamanız, GMSPlacesClient'dan alınan fotoğraf ve yorumlar gibi bilgileri görüntülerken gerekli ilişkilendirmeleri de göstermelidir.

Örneğin, GMSPlacesClient nesnesinin reviews özelliği beş adede kadar GMSPlaceReview nesnesi içeren bir dizi içerir. Her GMSPlaceReview nesnesi ilişkilendirmeler ve yazar ilişkilendirmeleri içerebilir. Yorumu uygulamanızda gösteriyorsanız ilişkilendirmeyi veya yazar ilişkilendirmesini de göstermeniz gerekir.

Daha fazla bilgi için ilişkilendirmeler hakkındaki dokümanları inceleyin.