iOS için Yerler SDK'sı uygulamanızda yerin adı ve adresi, enlem/boylam koordinatları olarak belirtilen coğrafi konum, yer türü (gece kulübü, evcil hayvan mağazası, müze vb.) dahil olmak üzere yerler hakkında zengin bilgiler sağlar. Belirli bir yerle ilgili bu bilgilere erişmek için, bir yeri benzersiz şekilde tanımlayan sabit bir tanımlayıcı olan yer kimliğini kullanabilirsiniz.
Yer ayrıntıları
GMSPlace
sınıfı, belirli bir yer hakkında bilgi sağlar. GMSPlace
nesnesini aşağıdaki şekillerde ele alabilirsiniz:
- Arayın:
GMSPlacesClient findPlaceLikelihoodsFromUserLocationWithPlaceFields:
. Mevcut yeri alma ile ilgili kılavuzu inceleyin. GMSPlacesClient fetchPlaceFromPlaceID:
yöntemini çağırmak için birGMSPlaceField
, yer kimliği ve geri çağırma yöntemi kullanın. Yer Ayrıntıları isteklerinde bir istekle en az bir alan belirtmezseniz veya bir istektenfields
parametresini çıkarırsanız TÜM olası alanlar döndürülür ve buna uygun şekilde faturalandırılırsınız. Kimliğe göre bir yer alma ile ilgili kılavuzu inceleyin.
Bir yer istediğinizde, döndürülecek yer verisi türlerini belirtmelisiniz. Bunu yapmak için döndürülecek veri türlerini belirterek bir GMSPlaceField
iletin. Bu, her bir isteğin maliyetini etkileyecektir. Bu nedenle, bunu dikkate almak önemlidir.
Yer verisi sonuçları boş olmayacağı için yalnızca veri içeren yer sonuçları döndürülür (örneğin, istenen bir yerin fotoğrafı yoksa sonuçta photos
alanı görünmez).
Aşağıdaki örnekte, bir istek tarafından döndürülen verileri belirtmek için iki alan değeri listesi verilmiştir:
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);
Yer alanları hakkında daha fazla bilgi edinin. Yer verileri isteklerinin nasıl faturalandırıldığı hakkında daha fazla bilgi için Kullanım ve Faturalandırma'ya bakın.
GMSPlace
sınıfı aşağıdaki yer verilerini içerebilir:
name
– Yerin adı.placeID
– Yerin metin tanımlayıcısı. Bu sayfanın geri kalanında yer kimlikleri hakkında daha fazla bilgi edinebilirsiniz.coordinate
– Yerin enlem ve boylam koordinatları olarak belirtilen coğrafi konumu.phoneNumber
– Yerin telefon numarası, uluslararası biçimde.formattedAddress
– Bu konumun kullanıcılar tarafından okunabilen adresi.Bu adres genellikle posta adresiyle eşdeğerdir. Birleşik Krallık gibi bazı ülkelerde lisanslama kısıtlamaları nedeniyle gerçek posta adreslerinin dağıtımına izin verilmediğini hatırlatmak isteriz.
Biçimlendirilmiş adres, mantıksal olarak bir veya daha fazla adres bileşeninden oluşur. Örneğin, "111 8th Avenue, New York, NY" adresi şu bileşenlerden oluşur: "111" (sokak numarası), "8th Avenue" (rota), "New York" (şehir) ve "NY" (ABD eyaleti).
Biçimlendirilmiş adresi programatik olarak ayrıştırmayın. Bunun yerine, API yanıtının biçimlendirilmiş adres alanına ek olarak içerdiği bağımsız adres bileşenlerini kullanmanız gerekir.
openingHours
– Yerin çalışma saatleri (GMSOpeningHours
tarafından temsil edildiği şekilde). Haftanın günlük çalışma saatlerinin yerelleştirilmiş dizelerinin listesini almak içinGMSOpeningHours.weekdayText
numaralı telefonu arayın.weekdayText
tarafından sağlanan verilerle eşdeğer olan daha ayrıntılı bilgiler içerenGMSPeriod
listesinin listesini döndürmek içinGMSOpeningHours.Periods
numaralı telefonu arayın. Not: Yer her zaman açıksa dönem, gece yarısı Pazar olarak temsil edilir vecloseEvent
boştur.addressComponents
– Bir yerin adres bileşenlerini gösterenGMSAddressComponent
nesne dizisi. Bu bileşenler, örneğin bir yerin bulunduğu şehri bulmak gibi, bir yerin adresiyle ilgili yapılandırılmış bilgileri ayıklamak amacıyla sağlanır. Adres biçimlendirmesi için bu bileşenleri kullanmayın; bunun yerine, yerelleştirilmiş bir biçimlendirilmiş adres sağlayanformattedAddress
özelliğini kullanın.addressComponents
dizisiyle ilgili aşağıdaki noktaları göz önünde bulundurun:- Adres bileşenleri dizisi,
formattedAddress
değerinden daha fazla bileşen içerebilir. - Dizide,
formattedAddress
içinde bulunanlar dışında adres içeren tüm siyasi kuruluşlar bulunmayabilir. - İsteğin biçiminin istekler arasında aynı kalacağı garanti edilmez. Özellikle
addressComponents
sayısı, talep edilen adrese göre değişir ve aynı adres için zaman içinde değişebilir. Bir bileşen, dizideki konumu değiştirebilir. Bileşenin türü değişebilir. Daha sonraki bir yanıtta belirli bir bileşen eksik olabilir.
- Adres bileşenleri dizisi,
userRatingsTotal
– Yerin kaç puan aldığını belirtir.
GMSPlace
sınıfı aşağıdaki üye işlevlerini içerir:
isOpen
, bir yerin açık olup olmadığınıopeningHours
ileUTCOffsetMinutes
ve geçerli tarih ile saate göre hesaplar.isOpenAtDate
bir yerin açık olup olmadığınıopeningHours
veUTCOffsetMinutes
geçerli tarihe ve saate göre hesaplar.
Açılış saatlerini ve/veya tarihleri almak için bu işlevleri kullanırken orijinal fetchPlaceFromPlaceID:
ya da findPlaceLikelihoodsFromUserLocationWithPlaceFields:
isteği hem GMSPlaceFieldOpeningHours
hem de GMSPlaceFieldUTCOffsetMinutes
alanlarını belirtmelidir. Bu alanlardan herhangi biri eksik olursa sonuçta ortaya çıkan GMSPlace
nesnesi açılış saatleri veya tarihler içermez ve çağrı, GMSPlaceOpenStatusUnknown
sonucunu döndürür. Doğru sonuçlar elde etmek için orijinal yer isteğinizdeki GMSPlaceFieldBusinessStatus
ve GMSPlaceFieldUTCOffsetMinutes
alanlarını isteyin. İstekte bulunulmazsa işletmenin faaliyet gösterdiği varsayılır.
isOpen
adlı yeri Yer Ayrıntıları ile nasıl kullanacağınızı öğrenmek için bu videoya göz atın.
Kimliğe göre bir yer bulun
Yer kimliği, bir yeri benzersiz şekilde tanımlayan metinsel tanımlayıcıdır. iOS için Yerler SDK'sında, bir yerin kimliğini GMSPlace
nesnesinden alabilirsiniz. Yer kimliğini depolayabilir ve daha sonra tekrar GMSPlace
nesnesini almak için kullanabilirsiniz.
Kimliğe göre yer almak için aşağıdaki
parametreleri ekleyerek GMSPlacesClient
fetchPlaceFromPlaceID:
yöntemini çağırın:
- Yer Kimliği içeren bir dize.
- Döndürülecek veri türlerini belirten bir veya daha fazla
GMSPlaceField
. - Arama bir otomatik tamamlama sorgusunu sonlandırmak için yapıldıysa oturum jetonu. Aksi takdirde, boş bırakın.
- Sonucu kullanmak için
GMSPlaceResultCallback
.
API, belirtilen geri çağırma yöntemini bir GMSPlace
nesnesinden geçirerek çağırır. Yer bulunmazsa yer nesnesi sıfırdır.
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österin
Uygulamanız, GMSPlacesClient
lookUpPlaceID:callback:
ürününden
elde edilen bilgileri görüntülediğinde ilişkilendirmeleri de görüntülemelidir.
İlişkilendirmeler ile ilgili belgelere bakın.
Yer kimlikleri hakkında daha fazla bilgi
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ıdır.
Her bir 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şınırsa bu durumla karşılaşılabilir.
Bir yer kimliği belirterek istekte bulunduğunuzda, yanıtta her zaman aynı yeri alacağınızdan emin olabilirsiniz (bu yer hâlâ mevcutsa). Bununla birlikte, yanıtın isteğinizdekinden farklı bir yer kimliği içerebileceğini unutmayın.
Daha fazla bilgi için yer kimliğine genel bakış bölümünü inceleyin.