Yer Ayrıntıları (Yeni)

Platform seçin: Android iOS JavaScript Web Hizmeti
Avrupa Ekonomik Alanı (AEA) geliştiricileri

iOS için Places SDK (Yeni), uygulamanıza yerlerle ilgili zengin bilgiler sağlar. Bu bilgiler arasında yerin 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ı yer alır. Belirli bir yerle ilgili bu bilgilere erişmek için yer kimliğini kullanabilirsiniz. Yer kimliği, bir yeri benzersiz şekilde tanımlayan sabit 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ı dahil olmak üzere belirli bir yerle ilgili bilgileri içerir. GMSPlacesClient fetchPlaceWithRequest: yöntemini çağırarak, GMSFetchPlaceRequest nesnesi ve GMSPlaceResultCallback türünde bir geri çağırma yöntemi ileterek GMSPlace nesnesi alın.

GMSFetchPlaceRequest nesnesi şunları belirtir:

  • (Zorunlu) Google Places veritabanında ve Google Haritalar'da bir yerin benzersiz tanımlayıcısı olan yer kimliği.
  • (Zorunlu) GMSPlaceProperty tarafından tanımlandığı şekilde, 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ı 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ğinde bulunma

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

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

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

Places Swift SDK

// 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
}

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);
  }
}];

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 nesnesinde yalnızca alan listesinde belirtilen alanlar doldurulur.

Açılma durumunu alma

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

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

  • Bir GMSPlace nesnesi veya yer kimliği belirten bir dize. Gerekli alanlarla Place nesnesi 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. Herhangi bir saat belirtilmezse varsayılan olarak "şimdi" değeri kullanılır.
  • Yanıtı işlemek için 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 iletirseniz yöntem, bunları getirmek için GMSPlacesClient GMSFetchPlaceRequest: kullanır.

isOpenWithRequest yanıt

isOpenWithRequest, işletmenin açık veya kapalı olup olmadığını ya da durumun bilinip bilinmediğini belirten status adlı bir Boole değeri içeren GMSPlaceIsOpenResponse nesnesi döndürür.

Dil Açıksa değer Kapalıyken değer Durum bilinmiyorsa değer
Places Swift true false nil
Swift .open .closed .unknown
Objective-C GMSPlaceOpenStatusOpen GMSPlaceOpenStatusClosed GMSPlaceOpenStatusUnknown

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ı Enterprise SKU'su kapsamında ücretlendirilir.
  • GMSPlace nesnenizde önceki bir istekten gelen bu alanlar zaten varsa tekrar ücretlendirilmezsiniz.

Örnek: GMSPlaceIsOpenWithRequest isteğinde bulunma

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

Places Swift SDK

        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
        }
        

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
            }
          }];
          

Gerekli parametreler

Gerekli 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ılan tanımlayıcıyla aynıdır. Her yer kimliği yalnızca bir yeri ifade edebilir 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şındığında bu durum yaşanabilir.

Bir yer kimliği belirterek yer isteğinde bulunduğunuzda, yanıt olarak her zaman aynı yeri alacağınızdan emin olabilirsiniz (yer hala mevcutsa). Ancak yanıtın, isteğinizdeki yer kimliğinden farklı bir yer kimliği içerebileceğini unutmayın.

Alan listesi

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

Aşağıdaki alanlardan birini veya daha fazlasını belirtin:

  • Aşağıdaki alanlar, Place Details Essentials ID Only SKU'yu tetikler:

    GMSPlacePropertyPlaceID
    GMSPlacePropertyPhotos

  • Aşağıdaki alanlar Place Details Essentials SKU'sunu tetikler:

    GMSPlacePropertyAddressComponents
    GMSPlacePropertyFormattedAddress
    GMSPlacePropertyCoordinate
    GMSPlacePropertyPlusCode
    GMSPlacePropertyTypes
    GMSPlacePropertyViewport

  • Aşağıdaki alanlar Place Details Pro SKU'sunu tetikler:

    GMSPlacePropertyBusinessStatus
    GMSPlacePropertyIconBackgroundColor
    GMSPlacePropertyIconImageURL
    GMSPlacePropertyName
    GMSPlacePropertyUTCOffsetMinutes
    GMSPlacePropertyWheelchairAccessibleEntrance

  • Aşağıdaki alanlar Place Details Pro SKU'sunu tetikler:

    GMSPlacePropertyCurrentOpeningHours
    GMSPlacePropertySecondaryOpeningHours
    GMSPlacePropertyPhoneNumber
    GMSPlacePropertyPriceLevel
    GMSPlacePropertyRating
    GMSPlacePropertyOpeningHours
    GMSPlacePropertyUserRatingsTotal
    GMSPlacePropertyWebsite

  • Aşağıdaki alanlar Place Details Enterprise 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ğeri listesi iletilir:

Places Swift SDK

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

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];
  

İ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, iki karakterli CLDR kodu değeri olarak belirtilir. Bu parametre, arama sonuçları üzerinde de bir önyargı etkisi yaratabilir. Varsayılan değer yoktur.

Yanıtın adres alanındaki ülke adı, bölge koduyla eşleşiyorsa ülke kodu adresten çıkarılır.

Çoğu CLDR kodu, ISO 3166-1 kodlarıyla aynıdır ancak bazı önemli istisnalar vardır. Örneğin, Birleşik Krallık'ın ccTLD'si "uk" (.co.uk), ISO 3166-1 kodu ise "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ı, kullanıcı tarafından oluşturulan ve otomatik tamamlama (yeni) çağrılarını "oturum" olarak izleyen dizelerdir. Otomatik Tamamlama (Yeni), faturalandırma amacıyla kullanıcının otomatik tamamlama aramasıyla ilgili sorgu ve yer seçimi aşamalarını ayrı bir oturumda gruplandırmak için oturum jetonlarını kullanır. Oturum jetonları, Otomatik Tamamlama (Yeni) çağrılarından sonra gelen 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 bilgileri (ör. fotoğraflar ve yorumlar) gösterdiğinde, gerekli atıfları da göstermelidir.

Örneğin, GMSPlacesClient nesnesinin reviews özelliği, en fazla beş GMSPlaceReview nesnesi dizisi içerir. Her GMSPlaceReview nesnesi, atıflar ve yazar atıfları içerebilir. Yorumu uygulamanızda gösteriyorsanız ilişkilendirme veya yazar ilişkilendirmesi de göstermeniz gerekir.

Daha fazla bilgi için ilişkilendirmeler ile ilgili dokümanları inceleyin.