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) veyaDate
(Swift) nesnesi. Herhangi bir saat belirtilmezse varsayılan olarak şu an kullanılır. - Yanıtı işlemek için
GMSPlaceOpenStatusResponseCallback
yöntemi. >
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
veGMSPlacePropertyBusinessStatus
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.