Metin Arama, bir dizi yer hakkında bilgi döndürür seçim yapabilirsiniz. Örneğin, "İstanbul'da pizza", "yakınındaki ayakkabı mağazaları" Ottawa" veya "Ana Cadde No: 123". Hizmet, bir yer listesiyle yanıt verir eşleşmesini ifade eder.
Bu hizmet özellikle, muğlak adresler sorguları dizenin adres olmayan bileşenleri, işletmelerle aynı zamanda adres. Belirsiz adres sorgusu örnekleri, kötü biçimlendirilmiş adreslerdir veya işletme adları gibi adres dışı bileşenler içeren istekler. İlk iki örnek gibi istekler, konuma (bölge, konum kısıtlaması veya konum sapması gibi) göre belirlendiğinden emin olun.
"10 High Street, Birleşik Krallık" veya "Ana Cadde No: 123, Türkiye" | Birleşik Krallık'ta birden fazla "High Street"s; ABD'de birden fazla "Ana Cadde" var. Konum kısıtlaması geçerli değilse sorgu, istenen sonuçları döndürmüyor. ayarlandı. |
"İstanbul'da restoran zinciri" | Birden çok "Zincir restoran" New York'taki konumlar; açık adres yok veya Hatta sokak adı bile olabilir. |
"İstiklal Caddesi 10, İstanbul" veya "İstiklal Caddesi No:123, İstanbul" | Yalnızca bir tane "Ana Cadde" İngiltere'nin Escher şehrinde; sadece bir tane "Ana Cadde" bir e-posta alırsınız. |
"Benzersiz RestoranAdı İstanbul" | New York'ta bu ada sahip yalnızca bir işletme; açık adres yok gerekli olduğu anlamına gelir. |
"İstanbul'daki pizza restoranları" | Bu sorgu, konum kısıtlaması ve "pizza restoranları" ifadesini içeriyor : iyi tanımlanmış bir yer türü olabilir. Birden fazla sonuç döndürür. |
"+1 514-670-8700" | Bu sorgu bir telefon numarası içeriyor. Şunun için birden fazla sonuç döndürür: yer alır. |
Metin arama ile yer listesini alın
GMSPlacesClient
searchByTextWithRequest:
numaralı telefonu arayarak bir Metin Arama isteğinde bulunun.
doğru
GMSPlaceSearchByTextRequest
Türündeki istek parametrelerini ve bir geri çağırma yöntemini tanımlayan nesne
GMSPlaceSearchByTextResultCallback
biraz zaman alabilir.
GMSPlaceSearchByTextRequest
nesnesi,
zorunlu ve isteğe bağlı parametreler
belirtin. Gerekli parametreler şunları içerir:
GMSPlace
nesnesinde döndürülecek alanların listesi, ayrıca tarafından tanımlanan alan maskesi adı verilenGMSPlaceProperty
. Alan listesinde en az bir alan belirtmezseniz veya alan adını sonra çağrı, bir hata döndürür.- Metin sorgusu.
Bu örnek metin arama isteği, yanıt GMSPlace
nesnelerinin
aramadaki her GMSPlace
nesnesi için yer adını ve yer kimliğini içermelidir
sonuç. Ayrıca, yanıtı yalnızca şu türdeki yerleri döndürecek şekilde filtreler:
"restoran".
Swift
// Create the GMSPlaceSearchByTextRequest object. let myProperties = [GMSPlaceProperty.name, GMSPlaceProperty.placeID].map {$0.rawValue} let request = GMSPlaceSearchByTextRequest(textQuery:"pizza in New York", placeProperties:myProperties) request.isOpenNow = true request.includedType = "restaurant" request.maxResultCount = 5 request.minRating = 3.5 request.rankPreference = .distance request.isStrictTypeFiltering = true request.locationBias = GMSPlaceCircularLocationOption(CLLocationCoordinate2DMake(40.7, -74.0), 200.0) // Array to hold the places in the response var placeResults: [GMSPlace] = [] let callback: GMSPlaceSearchByTextResultCallback = { [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().searchByText(with: request, callback: callback)
Objective-C
// Create the GMSPlaceSearchByTextRequest object. GMSPlaceSearchByTextRequest *request = [[GMSPlaceSearchByTextRequest alloc] initWithTextQuery:@"pizza in New York" placeProperties:@[GMSPlacePropertyName, GMSPlacePropertyPlaceID]]; request.isOpenNow = YES; request.includedType = @"restaurant"; request.maxResultCount = 5; request.minRating = 3.5; request.rankPreference = GMSPlaceSearchByTextRankPreferenceDistance; request.isStrictTypeFiltering = YES; request.priceLevels = @[ @(kGMSPlacesPriceLevelFree), @(kGMSPlacesPriceLevelCheap) ]; request.locationBias = GMSPlaceCircularLocationOption(CLLocationCoordinate2DMake(40.7, -74.0), 200.0); // Array to hold the places in the response _placeResults = [NSArray array]; // Create the GMSPlaceSearchByTextRequest object. [_placesClient searchByTextWithRequest:request callback:^(NSArray<GMSPlace *> *_Nullable placeResults, NSError * _Nullable error) { if (error != nil) { NSLog(@"An error occurred %@", [error localizedDescription]); return; } else { if (placeResults.count > 0) { // Get list of places. _placeResults = placeResults; } } } ];
GooglePlacesSwift
let restriction = RectangularLocationRestriction( northEast: CLLocationCoordinate2D(latitude: 20, longitude: 30), southWest: CLLocationCoordinate2D(latitude: 40, longitude: 50) ) let searchByTextRequest = SearchByTextRequest( textQuery: "pizza in New York", placeProperties: [ .name, .placeID ], locationRestriction: restriction, includedType: .restaurant, maxResultCount: 5, minRating: 3.5, priceLevels: [ .moderate, .inexpensive ], isStrictTypeFiltering: true ) switch await placesClient.searchByText(with: searchByTextRequest) { case .success(let places): // Handle places case .failure(let placesError): // Handle error }
Metin Arama yanıtları
Text Search API,
biçimi
GMSPlace
nesnelerinde, eşleşen yer başına bir GMSPlace
nesnesi bulunur.
Veri alanlarıyla birlikte, GMSPlace
yanıt aşağıdaki üye işlevlerini içerir:
-
isOpen
, bir yerin belirli bir saatte açık olup olmadığını hesaplar. isOpenAtDate
bir yerin belirli bir tarihte açık olup olmadığını hesaplar.
Gerekli parametreler
Gerekli olduğunu belirtmek için GMSPlaceSearchByTextRequest
nesnesini kullanın
parametreleridir.
-
Alan listesi
Döndürülecek yer verisi özelliklerini belirtin. Şunlardan oluşan bir listeyi iletin:
GMSPlace
özellikleri ile birlikte döndürülecek veri alanlarını belirtin. Alanı atlarsanız isteği bir hata döndürür.Alan listeleri, bir istek gönderen kullanıcı için Böylece, gereksiz işlem süresini ve faturalandırma ücretleri.
Aşağıdaki alanlardan birini veya daha fazlasını belirtin:
Aşağıdaki alanlar Metin Arama (Yalnızca Kimlik) SKU'sunu tetikler:
GMSPlacePropertyPlaceID
,GMSPlacePropertyName
Aşağıdaki alanlar Metin Arama (Temel) SKU'sunu tetikler:
GMSPlacePropertyAddressComponents
,GMSPlacePropertyBusinessStatus
,GMSPlacePropertyFormattedAddress
,GMSPlacePropertyIconBackgroundColor
,GMSPlacePropertyIconImageURL
,GMSPlacePropertyCoordinate
,GMSPlacePropertyPhotos
,GMSPlacePropertyPlusCode
,GMSPlacePropertyTypes
,GMSPlacePropertyUTCOffsetMinutes
,GMSPlacePropertyViewport
,GMSPlacePropertyWheelchairAccessibleEntrance
Aşağıdaki alanlar Metin Arama (Gelişmiş) SKU'sunu tetikler:
GMSPlacePropertyCurrentOpeningHours
,GMSPlacePropertySecondaryOpeningHours
,GMSPlacePropertyPhoneNumber
,GMSPlacePropertyPriceLevel
,GMSPlacePropertyRating
,GMSPlacePropertyOpeningHours
,GMSPlacePropertyUserRatingsTotal
,GMSPlacePropertyWebsite
Aşağıdaki alanlar Metin Arama (Tercih Edilen) SKU'sunu tetikler:
GMSPlacePropertyCurbsidePickup
,GMSPlacePropertyDelivery
,GMSPlacePropertyDineIn
,GMSPlacePropertyEditorialSummary
,GMSPlacePropertyReservable
,GMSPlacePropertyReviews
,GMSPlacePropertyServesBeer
,GMSPlacePropertyServesBreakfast
,GMSPlacePropertyServesBrunch
,GMSPlacePropertyServesDinner
,GMSPlacePropertyServesLunch
,GMSPlacePropertyServesVegetarianFood
,GMSPlacePropertyServesWine
,GMSPlacePropertyTakeout
-
textQuery
Aranacak metin dizesi, örneğin: "restoran", "123 Ana "İstanbul'da gidilecek en iyi yer".
İsteğe bağlı parametreler
İsteğe bağlı olanı belirtmek için GMSPlaceSearchByTextRequest
nesnesini kullanın
parametreleridir.
includedType
Sonuçları, tarafından tanımlanan belirtilen türle eşleşen yerlerle kısıtlar Tablo A. Yalnızca bir tür belirtilebilir. Örneğin:
request.includedType = "bar"
request.includedType = "pharmacy"
isOpenNow
true
ise yalnızca faaliyette olan yerleri döndürün sorgu gönderilir.false
ise tüm işletmeleri döndürün açık durumundan bağımsız olarak sağlayın. Google Rehber veritabanında çalışma saatleri belirtilmeyen yerler bu parametreyifalse
olarak ayarlarsanız döndürülür.isStrictTypeFiltering
includeType
parametresiyle kullanılır. Şuna ayarlandığındatrue
, yalnızcaincludeType
döndürüldü. False (yanlış) değerine ayarlandığında varsayılan, yanıtta eşleşmeyen yerler olabilir belirtilen türlerde.locationBias
Aranacak alanı belirtir. Bu konum, belirli bir belirtilen konumun etrafındaki sonuçlar, şunun sonuçları da dahil olmak üzere döndürülebilir: belirtilen alanın dışına çıktı.
locationRestriction
veyalocationBias
, ancak her ikisi birden değil.locationRestriction
, sonuçların içinde olması gereken bölge velocationBias
olarak sonuçların yakınında olması gereken ancak dışında olabilecek bölgeyi belirtmek inceleyeceğiz.Bölgeyi dikdörtgen görünüm veya daire olarak belirtin.
Bir daire, merkez noktası ve metre cinsinden yarıçapla tanımlanır. Yarıçap 0,0 ile 50000,0 (her ikisi de dahil) arasında olmalıdır. Varsayılan yarıçap 0,0'dır. Örneğin:
request.locationBias = GMSPlaceCircularLocationOption(CLLocationCoordinate2DMake(40.7, -74.0), 200.0)
Dikdörtgen, iki şekilde gösterilen enlem-boylam görünümüdür alt ve yüksek noktaların karşısında çapraz olarak çapraz çizgi bulunur. En düşük nokta güneybatıyı işaret eder dikdörtgenin köşesi, yüksek nokta ise kuzeydoğuyu köşesine dokunun.
Görüntü alanı, yani kendi sınırını içerir. Enlem sınırları -90 ile 90 derece (her ikisi de dahil) arasında olmalı ve boylam sınırları -180 ile 180 derece (her iki değer dahil) arasında olmalıdır:
low
=high
olursa görüntü alanı şunları içerir: tek bir noktaya parmak bastınız.- Eğer
low.longitude
>high.longitude
, boylam aralığı ters çevrilmiş (görüntü alanı 180 dereceyi geçiyor boylam çizgisi) içerir. low.longitude
= -180 derece vehigh.longitude
= 180 derece, görüntü alanı tüm boylamlar.low.longitude
= 180 derece vehigh.longitude
= -180 derece, boylam aralığı boştur.- Eğer
low.latitude
>high.latitude
, enlem aralığı boş.
locationRestriction
Aranacak alanı belirtir. Belirtilen alanın dışındaki sonuçlar geri döndü. Bölgeyi dikdörtgen görünüm alanı olarak belirtin. Açıklamayı göster /
locationBias
bölümünü tanımlama hakkında bilgi edinin.locationRestriction
veyalocationBias
, ancak her ikisi birden değil.locationRestriction
, sonuçların içinde olması gereken bölge velocationBias
olarak sonuçların yakınında olması gereken ancak dışında olabilecek bölgeyi belirtmek inceleyeceğiz.-
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.
minRating
Sonuçları, yalnızca ortalama kullanıcı puanı şundan yüksek olanlarla kısıtlar: veya eşit olabilir. Değerler, 0,0 ile 5,0 (dahil) arasında olmalıdır 0,5'lik artışlar olacaktır. Örneğin: 0, 0,5, 1,0, ... , 5,0 dahil bu sayılar. Değerler 0,5'e yuvarlanır. Örneğin, 0,6 değeri, sonuç 1,0'ın altındadır.
-
priceLevels
Aramayı belirli fiyat düzeylerinde işaretlenmiş yerlerle sınırlandırın. Varsayılan olarak tüm fiyat düzeyleri seçilir.
Tanımlayıcılı olarak bir veya daha fazla değerden oluşan bir dizi belirtin:
PriceLevel
.Örneğin:
request.priceLevels = [GMSPlacesPriceLevel.moderate.rawValue, GMSPlacesPriceLevel.cheap.rawValue]
rankPreference
Sonuçların yanıtta türüne göre nasıl sıralandığını belirtir. sorgu:
- "İstanbul'daki Restoranlar" gibi bir kategorik sorgu için
.relevance
(sonuçları arama alaka düzeyine göre sıralama) varsayılan değerdir.rankPreference
öğesini.relevance
olarak ayarlayabilir veya.distance
(sonuçları mesafeye göre sırala). - "Mountain View, CA" gibi kategorik olmayan bir sorgu için
rankPreference
politikasını ayarlamadan bırakın.
- "İstanbul'daki Restoranlar" gibi bir kategorik sorgu için
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.
İ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.