Yakındaki Arama (Yeni) isteği, arama yapılacak bölgeyi giriş olarak alır
merkez noktasının enlem ve boylam koordinatlarıyla tanımlanan bir daire olarak belirtilir
ve metre cinsinden yarıçapı gösterir. İstek, her biri
GMSPlace
nesnesini ifade eder.
Varsayılan olarak yanıt, arama alanı içindeki her türden yeri içerir. İsterseniz açıkça eklenecek veya hariç tutulacak yer türlerinin listesini belirterek yanıtı filtreleyin: tıklayın. Örneğin, yanıta yalnızca "restoran", "pastane" ve "kafe" olabilir veya "okul" türündeki tüm yerleri hariç tutabilirsiniz.
Yakındaki Arama (Yeni) istekleri
Şu numarayı arayarak Yakında Arama isteğinde bulunma:
GMSPlacesClient searchNearbyWithRequest:
doğru
GMSPlaceSearchNearbyRequest
Türündeki istek parametrelerini ve bir geri çağırma yöntemini tanımlayan nesne
GMSPlaceSearchNearbyResultCallback
biraz zaman alabilir.
GMSPlaceSearchNearbyRequest
nesnesi,
zorunlu ve isteğe bağlı
parametrelerini kullanır. Gerekli parametreler şunları içerir:
GMSPlace
nesnesinde döndürülecek alanların listesi (diğer adıyla 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.- Konum kısıtlaması, arama alanını tanımlayan daire anlamına gelir.
Bu örnek yakındaki arama isteği, yanıt GMSPlace
nesnelerinin
yer adını (GMSPlacePropertyName
) ve yer koordinatlarını içermelidir
Aramadaki her GMSPlace
nesne için (GMSPlacePropertyCoordinate
)
sonuç. Ayrıca yanıtı yalnızca "restoran" türündeki yerleri döndürecek şekilde filtreler. ve "cafe" yer alır.
Swift
// Array to hold the places in the response var placeResults: [GMSPlace] = [] // Define the search area as a 500 meter diameter circle in San Francisco, CA. let circularLocationRestriction = GMSPlaceCircularLocationOption(CLLocationCoordinate2DMake(37.7937, -122.3965), 500) // Specify the fields to return in the GMSPlace object for each place in the response. let placeProperties = [GMSPlaceProperty.name, GMSPlaceProperty.coordinate].map {$0.rawValue} // Create the GMSPlaceSearchNearbyRequest, specifying the search area and GMSPlace fields to return. var request = GMSPlaceSearchNearbyRequest(locationRestriction: circularLocationRestriction, placeProperties: placeProperties) let includedTypes = ["restaurant", "cafe"] request.includedTypes = includedTypes let callback: GMSPlaceSearchNearbyResultCallback = { [weak self] results, error in guard let self, error == nil else { if let error { print(error.localizedDescription) } return } guard let results = results as? [GMSPlace] else { return } placeResults = results } GMSPlacesClient.shared().searchNearby(with: request, callback: callback)
Objective-C
// Array to hold the places in the response _placeResults = [NSArray array]; // Define the search area as a 500 meter diameter circle in San Francisco, CA. id<GMSPlaceLocationRestriction> circularLocation = GMSPlaceCircularLocationOption(CLLocationCoordinate2DMake(37.7937, -122.3965), 500); // Create the GMSPlaceSearchNearbyRequest, specifying the search area and GMSPlace fields to return. GMSPlaceSearchNearbyRequest *request = [[GMSPlaceSearchNearbyRequest alloc] initWithLocationRestriction:circularLocation placeProperties:@[ GMSPlacePropertyName, GMSPlacePropertyCoordinate ]]; // Set the place types to filter on. NSArray<NSString *> *includedTypes = @[ @"restaurant", @"cafe" ]; request.includedTypes = [[NSMutableArray alloc] initWithArray:includedTypes]; [_placesClient searchNearbyWithRequest:request callback:^(NSArray<GMSPlace *> *_Nullable places, NSError *_Nullable error) { if (error != nil) { NSLog(@"An error occurred %@", [error localizedDescription]); return; } else { // Get list of places. _placeResults = places; } } ];
iOS için Yerler Swift SDK'sı (Önizleme)
let restriction = CircularCoordinateRegion(center: CLLocationCoordinate2DMake(37.7937, -122.3965), radius: 500) let searchNearbyRequest = SearchNearbyRequest( locationRestriction: restriction, placeProperties: [ .name, .coordinate], includedTypes: [ .restaurant, .cafe ], ) switch await placesClient.searchNearby(with: searchNearbyRequest) { case .success(let places): // Handle places case .failure(let placesError): // Handle error }
Yakındaki Arama yanıtları
Nearby Search API şu biçimde bir eşleşme dizisi döndürür:GMSPlace
nesnelerinde, eşleşen yer başına bir GMSPlace
nesnesi bulunur.
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
Şunun için gerekli parametreleri belirtmek üzere GMSPlaceSearchNearbyRequest
nesnesini kullanın:
anlamına gelir.
-
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. Şunu tanımlamak için: alan maskesi,GMSPlaceProperty
. [GMSPlaceSearchNearbyRequest
nesnesine]. Alan maskeleme, gereksiz verileri istemediğinizden emin olmak için iyi bir tasarım uygulamasıdır, Böylece gereksiz işlem süresi ve faturalandırma masrafı ortadan kalkar.Aşağıdaki alanlardan birini veya daha fazlasını belirtin:
Aşağıdaki alanlar, Yakındakilerde Arama (Temel) SKU'su:
GMSPlacePropertyAddressComponents
,GMSPlacePropertyBusinessStatus
,GMSPlacePropertyCoordinate
,GMSPlacePropertyFormattedAddress
GMSPlacePropertyName
,GMSPlacePropertyIconBackgroundColor
,GMSPlacePropertyIconImageURL
,GMSPlacePropertyPhotos
,GMSPlacePropertyPlaceID
,GMSPlacePropertyPlusCode
,GMSPlacePropertyTypes
,GMSPlacePropertyUTCOffsetMinutes
,GMSPlacePropertyViewport
,GMSPlacePropertyWheelchairAccessibleEntrance
Aşağıdaki alanlar, Yakında Arama (Gelişmiş) SKU'su:
GMSPlacePropertyCurrentOpeningHours
,GMSPlacePropertySecondaryOpeningHours
,GMSPlacePropertyPhoneNumber
,GMSPlacePropertyPriceLevel
GMSPlacePropertyRating
,GMSPlacePropertyOpeningHours
,GMSPlacePropertyUserRatingsTotal
,GMSPlacePropertyWebsite
Aşağıdaki alanlar, Yakındakiler İçin Arama (Tercih Edilen) SKU'su:
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
nesnesininname
veplaceID
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]
-
locationRestriction
GMSPlaceLocationRestriction
Daire olarak belirtilen, merkez noktası ve ile tanımlanmış, aranacak bölgeyi tanımlayan nesne metre cinsinden yarıçap. Yarıçap, 0,0 ile 50.000,0 (her ikisi de dahil) arasında olmalıdır. Varsayılan yarıçap: 0,0. Bu değeri, isteğinizde 0,0'dan büyük bir değere ayarlamanız gerekir.
İsteğe bağlı parametreler
Aşağıdakiler için isteğe bağlı parametreleri belirtmek üzere GMSPlaceSearchNearbyRequest
nesnesini kullanın:
anlamına gelir.
-
includeTypes/excludedTypes, includePrimaryTypes/excludedPrimaryTypes
Türlerden bir tür listesi belirtebilmenizi sağlar. Filtreleme için kullanılan Tablo A en iyi yoludur. Her bir tür kısıtlama kategorisinde en fazla 50 tür belirtilebilir.
Bir yerin, türlerden yalnızca tek bir birincil türü olabilir Şununla ilişkili Tablo A: somut olarak ortaya koyar. Örneğin, birincil tür
"mexican_restaurant"
veya"steak_house"
. Tekliflerinizi otomatikleştirmek ve optimize etmek için Sonuçları filtrelemek içinincludedPrimaryTypes
veexcludedPrimaryTypes
bir yerin birincil türü olabilir.Bir yer, türlerden birden fazla tür değerine de sahip olabilir A Tablosu görüntülenebilir. Örneğin, bir restoran aşağıdaki türlere sahip olabilir:
"seafood_restaurant"
,"restaurant"
,"food"
,"point_of_interest"
,"establishment"
.includedTypes
hesabını kullan veexcludedTypes
ile ilişkili türler listesindeki sonuçları filtrelemek için bir yer."restaurant"
veya"hotel"
, yanıt, belirtilen öğedir. Örneğin,"restaurant"
Böylece yanıt, birincil türün"restaurant"
, ancak yanıt daha spesifik yerler de içerebilir birincil tür, örneğin"chinese_restaurant"
veya"seafood_restaurant"
.Bir arama birden çok tür kısıtlamasıyla belirtilirse, yalnızca yerler için tüm kısıtlamaları karşılayanlar döndürülür. Örneğin,
{"includedTypes": ["restaurant"], "excludedPrimaryTypes": ["steak_house"]}
, iade edilen yerler,"restaurant"
ile ilgili hizmet sağlıyor ancak öncelikli olarak faaliyet göstermiyor"steak_house"
olarak.includedTypes
Şu kaynaktan yer türlerinin bir listesi: Aranacak Tablo A'yı tıklayın. Bu parametre eklenmezse her türden yer döndürülür.
excludedTypes
Şu kaynaktan yer türlerinin bir listesi: Tablo A arayın.
Hem
includedTypes
(örneğin,"school"
) hem deexcludedTypes
("primary_school"
gibi) ve ardından yanıt,"school"
olarak sınıflandırılan ancak"primary_school"
. Yanıt, şunlardan en az biriyle eşleşen yerleri içerir:includedTypes
veexcludedTypes
hiçbiri.Çakışan türler varsa (örneğin, her iki
includedTypes
öğesinde de görünen bir tür) veexcludedTypes
iseINVALID_REQUEST
hatası döndürülür.includedPrimaryTypes
Şu konumdaki birincil yer türlerinin bir listesi: Dahil edilecek Tablo A anlamına gelir.
excludedPrimaryTypes
Şu konumdaki birincil yer türlerinin bir listesi: Hariç tutulacak Tablo A elde edebilirsiniz.
Çakışan birincil türler varsa (örneğin, her ikisinde de görünen bir tür)
includedPrimaryTypes
veexcludedPrimaryTypes
,INVALID_ARGUMENT
hata döndürüldü. -
maxResultCount
Döndürülecek maksimum yer sonucu sayısını belirtir. Şu değerler arasında olmalıdır: 1 ve 20 (varsayılan) değerleri dahil.
-
rankPreference
Kullanılacak sıralama türü. Bu parametre eklenmezse sonuçlar popülerliğe göre sıralanır. Aşağıdakilerden biri olabilir:
.popularity
(varsayılan) Sonuçları popülerliklerine göre sıralar..distance
Sonuçları uzaklığa göre artan düzende sıralar. belirtilen konum.
-
regionCode
Yanıtı biçimlendirmek için kullanılan bölge kodu, CLDR kodu değerini girin. Varsayılan bir değer yok.
Yanıttaki
formattedAddress
alanının ülke adıregionCode
, ülke koduformattedAddress
öğesinden atlanır. Bu parametrenin, her zaman ülkeyi içerenadrFormatAddress
üzerinde etkisi yoktur. adı veya hiçbir zaman içermeyenshortFormattedAddress
üzerinde.Çoğu CLDR kodu aynıdır. ISO 3166-1 kodları, 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.
İ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 atıflar ve yazar atıfları 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.