iOS için Yerler SDK'sı 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ı
İlgili içeriği oluşturmak için kullanılan
GMSPlace
sınıfı, belirli bir yer hakkında bilgi verir. Her ay
GMSPlace
nesnesini aşağıdaki şekillerde kullanabilirsiniz:
- Telefonla arama
GMSPlacesClient findPlaceLikelihoodsFromUserLocationWithPlaceFields:
. Bu kılavuza göz atın: var olan yeri öğrenme hakkında daha fazla bilgi edinin. - Telefonla arama
GMSPlacesClient fetchPlaceFromPlaceID:
, birGMSPlaceField
, bir yer kimliği ve geri çağırma yöntemidir. Yer Ayrıntıları istekleri için istekle birlikte en az bir alan belirtin veyafields
kısmını atladıysanız parametresini dahil ettiğinizde, TÜM olası alanlar döndürülür ve buna göre faturalandırılır. kimliğine göre yer.
Bir yer isteğinde bulunduğunuzda, gösterilecek yer verisi türlerini
dön. Bunu yapmak için verileri belirterek bir GMSPlaceField
iletin
döndürülecek şekilde
döndürülecek. Bu önemli bir noktadır çünkü bu,
ne kadar ödeyebileceğinizi belirler.
Yer verisi sonuçları boş bırakılamayacağı için yalnızca yer verileri
veri içeren sonuçlar döndürülür (örneğin, istenen bir yerde
fotoğraf yüklemezseniz sonuçta photos
alanı görünmez).
Aşağıdaki örnek, iki alan değeri listesini aktarır kullanın:
Swift
// A hotel in Saigon with an attribution. let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs" // Specify the place data types to return. let fields: GMSPlaceField = GMSPlaceField(rawValue: UInt(GMSPlaceField.name.rawValue) | UInt(GMSPlaceField.placeID.rawValue))
Objective-C
// A hotel in Saigon with an attribution. NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs"; // Specify the place data types to return. GMSPlaceField fields = (GMSPlaceFieldName | GMSPlaceFieldPlaceID);
Daha fazla bilgi: yer alanlarına ekleyin. Daha fazla Yer verisi isteklerinin nasıl faturalandırıldığına ilişkin bilgi için bkz. Kullanım ve Faturalandırma.
İlgili içeriği oluşturmak için kullanılan
GMSPlace
sınıfı aşağıdaki yer verilerini içerebilir:
name
: Yerin adı.editorialSummary
– Bir yerle ilgili basit bir açıklama sunar.placeID
: Yerin metin biçimindeki tanımlayıcısı. Okunanlar yer kimlikleri hakkında daha fazla bilgiyi sayfanın geri kalanında bulabilirsiniz.coordinate
: Yerin coğrafi konumu, enlem ve boylam koordinatları şeklinde belirtilir.phoneNumber
– Söz konusu yerin telefon numarası (burada) olacaktır.formattedAddress
– Bu dosyanın kullanıcılar tarafından okunabilen adresi konum.Bu adres genellikle posta adresine eşdeğerdir. Bazı Birleşik Krallık gibi ülkelerde, doğru lisans kısıtlamaları nedeniyle posta adresi.
Biçimlendirilmiş adres mantıksal olarak bir veya daha fazla adresinden oluşur. bileşenleri hakkında daha fazla bilgi edinin. Örneğin, "111 8. Cadde, İstanbul, Türkiye" adresi şu bileşenlerden oluşur: "111" (bina numarası), "8. Cadde" (rota), "New York" (şehir) ve "NY" (ABD eyaleti).
Biçimlendirilmiş adresi programlı olarak ayrıştırmayın. Bunun yerine API yanıtına ek olarak dahil edilen bağımsız adres bileşenleri ekler.
openingHours
– Yerin çalışma saatleri (GMSOpeningHours
ile temsil edilir). Telefonla arama Yerelleştirilmiş dizelerin listesini almak içinGMSOpeningHours.weekdayText
(haftanın günlük çalışma saatleri) Telefon et:GMSOpeningHours.Periods
(daha ayrıntılı bilgi içeren birGMSPeriod
listesi döndürmek için)weekdayText
tarafından sağlanan verilere eşdeğer. Not: Bir yer her zaman açıksa dönem Pazar gece yarısı vecloseEvent
boş.currentOpeningHours
vesecondaryOpeningHours
: Bir yerle ilgili zaman çizelgesinde tatil dönemi ve geçici değişiklikler yapılan alanlar.addressComponents
– Bir dizi öğesinin bileşenlerini temsil edenGMSAddressComponent
nesne bir yerin adresi. Bu bileşenler şu amaçla sağlanır: bir yerin adresiyle ilgili yapılandırılmış bilgileri ayıklama, örneğin bir yerin bulunduğu şehri bulmaktır. Bu bileşenleri kullanmayın adres biçimlendirmesi için; bunun yerineformattedAddress
kullanın özelliğini kullanmanızı öneririz.addressComponents
ile ilgili aşağıdaki gerçeklere dikkat edin dizi:- Adres bileşenleri dizisi,
formattedAddress
- Bu dizi,
aşağıda belirtilenlerin dışında bir adresi
formattedAddress
- Yanıt biçiminin
kabul edersiniz. Özellikle,
addressComponents
sayısı talep edilen adrese göre değişir ve zaman içinde aynı adrese sahip olmalıdır. Bir bileşen, dizideki konumunu değiştirebilir. Bileşenin türü değişebilir. Belirli bir bileşen, yanıt veremeyebilirsiniz.
- Adres bileşenleri dizisi,
userRatingsTotal
- Kaç yorumdan oluştuğunu gösterir bir puan ekleyin.
İlgili içeriği oluşturmak için kullanılan
GMSPlace
class, aşağıdaki üye işlevlerini içerir:
-
isOpen
, bir yerin belirli bir zamanda açık olup olmadığını hesaplar.openingHours
bazında veUTCOffsetMinutes
, geçerli tarih ve saat olabilir. isOpenAtDate
bir yerin belirli bir tarihte açık olup olmadığınıopeningHours
veUTCOffsetMinutes
, geçerli tarih ve saat olabilir.
Çalışma saatlerini ve/veya tarihlerini almak için bu işlevleri kullanırken
fetchPlaceFromPlaceID:
veya findPlaceLikelihoodsFromUserLocationWithPlaceFields:
istek HEM GMSPlaceFieldOpeningHours
hem de GMSPlaceFieldUTCOffsetMinutes
belirtmelidir
alanları. Bu alanlardan biri eksikse GMSPlace
nesne açılış saatlerini veya tarihlerini içermeyecek ve çağrıya dönülecektir
GMSPlaceOpenStatusUnknown
. Doğru sonuçların elde edilmesi için
GMSPlaceFieldBusinessStatus
ve GMSPlaceFieldUTCOffsetMinutes
alanına ekleyin. Talep edilmezse
olduğundan emin olun.
isOpen
.
Benzersiz çalışma saatleri
Normal çalışma saatleriopeningHours
üzerinden alınırken currentOpeningHours
ve secondaryOpeningHours
, tatil günlerini ve programdaki geçici değişiklikleri destekler.
Bu özel günler için istisnai çalışma saatleri filtrelenebilir ve varsa gösterilebilir.
Swift
func examineOpeningHours(place: GMSPlace) { // Check if the current opening hours contains a special day that has exceptional hours guard let currentOpeningHours = place.currentOpeningHours else { return } if let specialDays = currentOpeningHours.specialDays { guard !specialDays.isEmpty else { return } if let specialDay = specialDays.filter { $0.isExceptional }.first { // Indicate exceptional hours } } // Check if current opening hours contains a truncated time period let periods = currentOpeningHours.periods if !periods.isEmpty { for period in periods { let open = period.open let close = period.close if let open = open { let date = open.date if open.isTruncated { // Indicate truncated time period } } } } // Check if the place's secondary opening hours indicate when delivery is available let secondaryOpeningHours = place.secondaryOpeningHours guard let hoursType = secondaryOpeningHours.first?.hoursType else { return } if (hoursType == GMSPlaceHoursTypeDelivery) { // Indicate hours where delivery is available } }
Objective-C
- (void)examineOpeningHours:(GMSPlace *) place { // Check if the current opening hours contains a special day that has exceptional hours GMSOpeningHours *currentOpeningHours = place.currentOpeningHours; if (currentOpeningHours != nil) { NSArray<GMSPlaceSpecialDay *> *specialDays = currentOpeningHours.specialDays; if ([specialDays count] != 0) { for (GMSPlaceSpecialDay *specialDay in specialDays) { NSDate *date = specialDay.date; if ([specialDay isExceptional]) { // Indicate exceptional hours } } } } // Check if current opening hours contains a truncated time period NSArray <GMSPeriod *> * periods = currentOpeningHours.periods; if ([periods count] != 0) { for (GMSPeriod * period in periods) { GMSTimeOfWeek *open = period.open; GMSTimeOfWeek *close = period.close; if (open) { if ([open isTruncated]) { // Indicate truncated time period } } } } // Check if the place's secondary opening hours indicate when delivery is available GMSOpeningHours *secondaryOpeningHours = place.secondaryOpeningHours; GMSPlaceHoursType hoursType = secondaryOpeningHours.getHoursType; if (hoursType == GMSPlaceHoursTypeDelivery) { // Indicate hours where delivery is available } }
Kimliğe göre bir yer alın
Yer kimliği, bir yeri benzersiz şekilde tanımlayan metinsel bir tanımlayıcıdır. İçinde
iOS için Yerler SDK'sını kullanıyorsanız bir yerin kimliğini
GMSPlace
nesnesini tanımlayın. Yer kimliğini saklayabilir ve bu kimliği kullanarak
GMSPlace
daha sonra tekrar deneyin.
Kimliğe göre bir yer almak için şu numarayı arayın:
GMSPlacesClient
fetchPlaceFromPlaceID:
, aşağıdaki parametreleri iletir:
- Yer kimliği içeren bir dize.
- Döndürülecek veri türlerini belirten bir veya daha fazla
GMSPlaceField
. - Otomatik tamamlama sorgusunu sonuçlandırmak için arama yapılırsa bir oturum jetonu. Aksi takdirde nil değerini geçirin.
- Sonucu işlemek için
GMSPlaceResultCallback
.
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 fields: GMSPlaceField = GMSPlaceField(rawValue: UInt(GMSPlaceField.name.rawValue) | UInt(GMSPlaceField.placeID.rawValue))! placesClient?.fetchPlace(fromPlaceID: placeID, placeFields: fields, sessionToken: nil, callback: { (place: GMSPlace?, error: Error?) in if let error = error { print("An error occurred: \(error.localizedDescription)") return } if let place = place { self.lblName?.text = place.name print("The selected place is: \(place.name)") } })
Objective-C
// A hotel in Saigon with an attribution. NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs"; // Specify the place data types to return. GMSPlaceField fields = (GMSPlaceFieldName | GMSPlaceFieldPlaceID); [_placesClient fetchPlaceFromPlaceID:placeID placeFields:fields sessionToken:nil callback:^(GMSPlace * _Nullable place, NSError * _Nullable error) { if (error != nil) { NSLog(@"An error occurred %@", [error localizedDescription]); return; } if (place != nil) { NSLog(@"The selected place is: %@", [place name]); } }];
İlişkilendirmeleri uygulamanızda gösterme
Uygulamanız,
GMSPlacesClient
lookUpPlaceID:callback:
ayarı varsa uygulamada ilişkilendirmeler de gösterilmelidir.
Dokümanları görüntüleyin:
ilişkilendirmeler.
Yer kimlikleri hakkında daha fazla bilgi
iOS için Yerler SDK'sında kullanılan yer kimliği kullanıldığı yer Places API, Android için Yerler SDK'sı 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.
Daha fazla bilgi için yer kimliğine genel bakış.