Yer Ayrıntıları (Yeni)

Platform seçin: Android iOS JavaScript Web Hizmeti

iOS için Yerler SDK'sı (Yeni) uygulamanıza zengin bilgiler sağlar bilgileri, coğrafi konum, yer adı ve konum gibi enlem/boylam koordinatları olarak belirtilen yer, yerin türü (ör. gece kulübü, evcil hayvan mağazası, müze) ve daha fazlası. Bu bilgilere erişmek için yer kimliğini kullanabilirsiniz. Bu, benzersiz bir tanımlayıcı olan bir yeri tanımlar.

Yer ayrıntılarını al

İlgili içeriği oluşturmak için kullanılan GMSPlace sınıfı, belirli bir yer hakkında, şurada gösterilen tüm veri alanları da dahil olmak üzere bilgiler içerir: Yer Veri Alanları (Yeni). Bir GMSPlace çağırarak nesne GMSPlacesClient fetchPlaceWithRequest:, GMSFetchPlaceRequest nesnesi ve türü geri çağırma yöntemi GMSPlaceResultCallback

GMSFetchPlaceRequest nesnesi şunu belirtir:

  • (Gerekli) Google Rehber'deki bir yerin benzersiz tanımlayıcısı olan yer kimliği veritabanında ve Google Haritalar'da.
  • (Zorunlu) GMSPlace nesnesinde döndürülecek alanların listesi. aşağıdaki şekilde tanımlandığı şekilde alan maskesi: GMSPlaceProperty. Alan listesinde en az bir alan belirtmezseniz veya alan adını sonra ç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ısı isteğinde bulunma

Bu örnek, aşağıdaki parametreleri ileterek kimliğe göre bir yer alır:

  • ChIJV4k8_9UodTERU5KXbkYpSYs adlı yerin kimliği.
  • Yer adının ve web sitesi URL'sinin döndürülmesini belirten bir alan listesi.
  • GMSPlaceResultCallback biraz zaman ayırın.

API, belirtilen geri çağırma yöntemini çağırır ve GMSPlace nesnesini tanımlayın. Yer bulunamazsa yer nesnesi boştur.

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

Açık durumunu al

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

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

  • Bir GMSPlace nesnesi veya yer kimliğini belirten bir dize. Gerekli alanlarla Yer nesnesinin oluşturulması hakkında daha fazla bilgi için Yer ayrıntıları'na bakın.
  • 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 şu an kullanılır.
  • Yanıtı işlemek için GMSPlaceOpenStatusResponseCallback yöntemi.
  • &gt;
ziyaret edin.

GMSPlaceIsOpenWithRequest yöntemi, aşağıdaki alanların GMSPlace nesnesinde ayarlanmasını gerektirir:

  • GMSPlacePropertyUTCOffsetMinutes
  • GMSPlacePropertyBusinessStatus
  • GMSPlacePropertyOpeningHours
  • GMSPlacePropertyCurrentOpeningHours
  • GMSPlacePropertySecondaryOpeningHours

Bu alanlar Yer nesnesinde sağlanmazsa veya bir yer kimliği iletirseniz yöntem, bunları getirmek için GMSPlacesClient GMSFetchPlaceRequest: yöntemini kullanır.

isOpenWithRequest yanıt

isOpenWithRequest, işletmenin açık mı kapalı mı olduğunu veya durumun bilinmiyor olduğunu belirten status adlı boole değerini 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ı için Yer Ayrıntıları (Gelişmiş) SKU altında ödeme alınır.
  • GMSPlace nesnenizde önceki bir istekte zaten bu alanlar varsa sizden tekrar ücret alınmaz.

Örnek: GMSPlaceIsOpenWithRequest isteğinde bulunma

Aşağıdaki örnekte, mevcut bir GMSPlace nesnesi içinde bir GMSPlaceIsOpenWithRequest işleminin 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

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

Yer kimliği

iOS için Yerler SDK'sında kullanılan yer kimliği Android için Places API'sinde kullanılan tanımlayıcıyla aynı tanımlayıcı ve diğer Google API'lerini kullanabilirsiniz. Her yer kimliği yalnızca bir yeri ifade edebilir, ancak tek bir yer için daha fazla bilgi birden fazla yer kimliğinden ibarettir.

Bir yerin yeni bir yer kimliği almasına yol açabilecek koşullar vardır. Örneğin, bu durum bir işletme yeni bir konuma taşınırsa gerçekleşebilir.

Bir yer kimliği belirterek bir yer isteğinde bulunduğunuzda, yanıtta her zaman aynı yer gösterilir (yer, mevcut). Ancak, yanıtın şuna sahip bir yer kimliği içerebileceğini unutmayın: isteyebilirsiniz.

Alan listesi

Yer ayrıntılarını istediğinizde, ayrıntılar için sonuç, yer için GMSPlace nesnesini alan maskesi olarak döndürür. Alan maskesini tanımlamak için şuradan bir değer dizisi aktar: GMSPlaceProperty [GMSFetchPlaceRequest nesnesine]. Alan maskeleme, gereksiz verileri istemediğinizden emin olmak açısından iyi bir tasarım uygulamasıdır. gereksiz işlem süresi ve faturalandırma ücretlerinin önlenmesine yardımcı olur.

Aşağıdaki alanlardan birini veya daha fazlasını 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 iki öğeli bir liste alan değerleri (istek tarafından döndürülen GMSPlace nesnesinin name ve placeID alanları:

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, CLDR kodu değerini girin. Bu parametrenin yanlılık etkisi de olabilir daha fazla bilgi edineceksiniz. Varsayılan bir değer yok.

Yanıttaki adres alanının ülke adı bölge kodundan ülke kodu atlanır.

Çoğu CLDR kodu ISO 3166-1 kodlarıyla aynıdır. bazı önemli istisnalarla birlikte. Örneğin, Birleşik Krallık'ın ccTLD'si "uk" (.co.uk), ISO 3166-1 kodu "gb" ise (teknik olarak "Büyük Britanya ve Kuzey İrlanda Birleşik Krallığı"). Parametre, geçerli yasalara göre sonuçları etkileyebilir.

sessionToken

Oturum jetonları Otomatik Tamamlama'yı izleyen kullanıcı tarafından oluşturulmuş dizelerdir (Yeni) aramaları "oturumlar" olarak adlandırılır. Otomatik Tamamlama (Yeni), şunları yapmak için oturum jetonlarını kullanır: bir kullanıcı otomatik tamamlama aramasının sorgu ve yer seçimi aşamalarını ayrı bir oturumda gruplandırmak . Oturum jetonları Yer Ayrıntılarına aktarılır (Yeni) Otomatik tamamlama (Yeni) aramalarını takip eden aramalar Daha fazla bilgi için bkz. Oturum jetonları.

İlişkilendirmeleri uygulamanızda gösterme

Uygulamanız, GMSPlacesClient (ör. fotoğraflar ve yorumlar) uygulamada, gerekli ilişkilendirmeler de gösterilmelidir.

Örneğin, GMSPlacesClient nesnesinin reviews özelliği en fazla beşten oluşan bir dizi içerir GMSPlaceReview nesneler'i tıklayın. Her GMSPlaceReview nesnesi ilişkilendirmeler ve yazar ilişkilendirmeleri içerebilir. Yorumu uygulamanızda gösteriyorsanız atıfı veya yazarı da göstermeniz gerekir ilişkilendirmesine yardımcı olur.

Daha fazla bilgi için ilişkilendirmeler.