Otomatik Tamamlama (Yeni) hizmeti, bir isteğe yanıt olarak yer önerileri döndürür. İstekte bir metin arama dizesi ve arama alanını kontrol eden coğrafi sınırlar
Otomatik tamamlama (Yeni) hizmeti tam kapasitede eşleşebilir girişin kelimeleri ve alt dizeleri, yer adlarını, adresleri ve artı ekleyebilirsiniz. Bu nedenle uygulamalar, anlık yer önerileri sunmak için kullanılır.
Yer önerileri; işletmeler, adresler ve birbirine ait konumlar gibi yerlerdir ilgi alanı (belirtilen giriş metni dizesine ve arama alanına göre)
Örneğin, giriş olarak kısmi bir Arama alanı İstanbul ile sınırlı olmak üzere, "Spagh" adlı kullanıcı girişi. Yanıtta, aramayla eşleşen yer önerilerinin bir listesi yer alır. "Kafe Spagetti" adlı restoran gibi bir dize ve arama alanını, bilgileri takip edebilirsiniz.
Döndürülen yer önerileri, kullanıcıya sunulabilecek şekilde tasarlanmıştır. istedikleri yeri seçebilmelerini sağlar. Bir Yer Ayrıntıları oluşturabilirsiniz (Yeni) daha fazla almak için istek gönderin yer önerilerinden herhangi biri hakkında bilgi verir.
Otomatik tamamlama (Yeni) istekleri
GMSPlaceClient
.
Parametreleri
GMSAutocompleteRequest
nesnesini tanımlayın. Yanıt, otomatik tamamlama önerilerini
GMSAutocompletePlaceSuggestion
nesnesini tanımlayın.
API anahtarı ve query
parametreleri gereklidir. Şunları da ekleyebilirsiniz:
GMSAutocompleteSessionToken
faturalandırma oturumuyla ilişkilendirmek için
GMSAutocompleteFilter
sonuçlara uygulamak için kullanılır.
Zorunlu ve isteğe bağlı parametreler hakkında daha fazla bilgi için bu dokümanın parametreler bölümüne bakın.
Swift
let token = GMSAutocompleteSessionToken() let northWestBounds = CLLocationCoordinate2DMake(40.921628, -73.700051) let southEastBounds = CLLocationCoordinate2DMake(40.477398, -74.259087) let filter = GMSAutocompleteFilter() filter.types = [kGMSPlaceTypeRestaurant] filter.locationBias = GMSPlaceRectangularLocationOption(northWestBounds, southEastBounds) let request = GMSAutocompleteRequest(query:"Spagh") request.filter = filter request.sessionToken = token GMSPlacesClient.shared().fetchAutocompleteSuggestions(from: request, callback: { ( results, error ) in if let error = error { print("Autocomplete error: \(error)") return } if let autocompleteResults = results { for result in autocompleteResults { print("Result \(String(describing: result.placeSuggestion?.placeID)) with \(String(describing: result.placeSuggestion?.attributedFullText))") } } })
Objective-C
CLLocationCoordinate2D northEast = CLLocationCoordinate2DMake(37.388162, -122.088137); CLLocationCoordinate2D southWest = CLLocationCoordinate2DMake(37.395804, -122.077023); GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.types = @[ kGMSPlaceTypeRestaurant ]; filter.locationBias = GMSPlaceRectangularLocationOption(northEast, southWest); GMSAutocompleteRequest *request = [[GMSAutocompleteRequest alloc] initWithQuery:@"Sicilian piz"]; request.sessionToken = token; request.filter = filter; [[GMSPlacesClient sharedClient] fetchAutocompleteSuggestionsFromRequest:request callback:^(NSArray<GMSAutocompleteSuggestion *> * results, NSError * error){ // Handle response for (GMSAutocompleteSuggestion *suggestion in results) { if (suggestion.placeSuggestion) { // Show place suggestion data. } } }];
iOS için Yerler Swift SDK'sı (Önizleme)
let center = (37.3913916, -122.0879074) let northEast = (37.388162, -122.088137) let southWest = (37.395804, -122.077023) let bias = RectangularCoordinateRegion(northEast: northEast, southWest: southWest) let filter = AutocompleteFilter(types: [ .restaurant ], origin: center, coordinateRegionBias: bias) let autocompleteRequest = AutocompleteRequest(query: "Sicilian piz", filter: filter) switch await placesClient.fetchAutocompleteSuggestions(with: autocompleteRequest) { case .success(let autocompleteSuggestions): // Handle suggestions. case .failure(let placesError): // Handle error. }
Otomatik tamamlama (Yeni) yanıtları
Otomatik tamamlama, en fazla beşlik bir dizi döndürür
GMSAutocompleteSuggestion
örnek. Dizi şunları içerir:
placeID
types
: Bu yer için geçerli olan türler.distanceMeters
: Kalkış noktasından uzaklık.attributedFullText
: Bir önerinin kullanıcılar tarafından okunabilen tam metni.attributedPrimaryText
: Bir önerinin kullanıcılar tarafından okunabilen birincil metni.attributedSecondaryText
: Bir önerinin kullanıcılar tarafından okunabilen ikincil metni.structuredFormat
: Belirli bir ad ve belirsizleştirme yapan metin (ör. şehir veya bölge.
Gerekli parametreler
sorgu
Arama yapılacak metin dizesi. Tam kelimeleri ve alt dizeleri belirtin, yeri adları, adresleri ve artı kodlarını kullanın. Otomatik Tamamlama (Yeni) hizmeti, bu dizeye göre olası eşleşmeleri döndürür ve sonuçları algılanan alaka düzeylerine göre sıralar.
İsteğe bağlı parametreler
türler
Bir yerin yalnızca tek bir birincil türü şu türlerden olabilir:Tablo
A veya Tablo
B ile ilişkilendirilmelidir.
Örneğin, birincil tür mexican_restaurant
veya steak_house
olabilir.
Varsayılan olarak API, input
parametresine göre tüm yerleri döndürür.
. Sonuçları kısıtla
geçirerek belirli bir birincil tür veya birincil türde olmasını
types
parametresinden yararlanın.
Tablodan en fazla beş tür değeri belirtmek için bu parametreyi kullanın A veya Tablo B. Yer, eşleşmelidir yanıta dahil edilecek belirtilen birincil tür değerlerinden biri olmalıdır.
Aşağıdaki durumlarda istek INVALID_REQUEST
hatasıyla reddedilir:
- Beşten fazla tür belirtilmiş.
- Tanınmayan türler belirtilmiş.
ülkeler
Yalnızca, dizi olarak belirtilen, belirtilen bölgeler listesinden sonuçları dahil et 15 ccTLD ("üst düzey) alan adı") iki karakterli değerler sunmalıdır. Atlanırsa yanıta herhangi bir kısıtlama uygulanmaz. Örneğin, bölgeleri Almanya ve Fransa ile sınırlamak için:
Swift
let filter = GMSAutocompleteFilter() filter.countries = ["DE", "FR"]
Objective-C
GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.countries = @[ @"DE", @"FR" ];
iOS için Yerler Swift SDK'sı (Önizleme)
let filter = AutocompleteFilter(countries: ["DE", "FR"])
Hem locationRestriction
hem de countries
belirtirseniz sonuçlar şu şekilde olur:
iki ayarın kesişim alanında yer alır.
inputOffset
İmlecin konumunu gösteren sıfır tabanlı Unicode karakter ofseti
input
İmleç konumu, hangi tahminlerin döndürüleceğini etkileyebilir. Eğer
boşsa varsayılan olarak input
uzunluğunda olur.
Konum ön yargıları veya konum Kısıtlaması
tanımlamak için locationBias
veya locationRestriction
belirtebilirsiniz ancak ikisini birden belirtemezsiniz
alanı seçin. locationRestriction
, bir hedefin etkin olduğu bölgeyi
sonuçlar, içinde yer almalı ve locationBias
olarak belirtmek üzere
sonuçlar yakınında olmalıdır ancak bölgenin dışında olabilir.
locationBias
, aranacak bir alan belirtiyor. Bu konum önyargı işlevi görür Bu, aşağıdakiler de dahil olmak üzere, belirtilen konumun çevresindeki sonuçların döndürülebileceği anlamına gelir: belirtilen alanın dışındaki sonuçları döndürür.locationRestriction
, aranacak bir alan belirtiyor. dışındaki sonuçlar belirtilen alan döndürülmez.
locationBias
veya locationRestriction
bölgesini dikdörtgen olarak belirtin
veya daire olarak kullanabilirsiniz.
Bir daire, merkez noktası ve metre cinsinden yarıçapıyla tanımlanır. Yarıçap şöyle olmalıdır:
0,0 ve 50.000,0 (her iki değer dahil) arasında bir değerdir. Varsayılan değer 0,0'dır. locationRestriction
için yarıçapı 0,0'dan büyük bir değere ayarlamanız gerekir.
Aksi takdirde, istek hiçbir sonuç döndürmez.
Örneğin:
Swift
let center = CLLocationCoordinate2DMake(40.730610, -73.935242) let radius = 1000.0 filter.locationBias = GMSPlaceCircularLocationOption(center, radius)
Objective-C
CLLocationCoordinate2D center = CLLocationCoordinate2DMake(40.730610, -73.935242); radius = 1000.0; GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.locationBias = GMSPlaceCircularLocationOption(center, radius);
iOS için Yerler Swift SDK'sı (Önizleme)
let center = CLLocationCoordinate2DMake(40.477398, -74.259087) let bias = CircularCoordinateRegion(center: center, radius: 1000.0) let filter = AutocompleteFilter(coordinateRegionBias: bias)
Dikdörtgen, iki köşegen olarak gösterilen enlem-boylam görünümüdür
karşısında low
ve high
puan. Görüntü alanı, kapalı bir bölge olarak kabul edilir.
yani sınırlarını içerir. Enlem sınırları -90 ile arasında olmalıdır
90 derece dahil olmak üzere boylam sınırları ise -180 ile 180 aralığında olmalıdır
derece (bu değerler dahil):
low
=high
olursa, görüntü alanı bu tek noktadan oluşur.- Eğer
low.longitude
>high.longitude
ise boylam aralığı tersine çevrilir ( 180 derecelik boylam çizgisini geçer). low.longitude
= -180 derece vehigh.longitude
= 180 derece ise görüntü alanı tüm boylamları içerir.low.longitude
= 180 derece vehigh.longitude
= -180 derece ise boylam aralığı boş.
Hem low
hem de high
doldurulmalıdır, temsil edilen kutu kullanılamaz
boştur. Boş görüntü alanı hatayla sonuçlanır.
Örneğin, bu görüntü alanı New York City'yi tamamen kapsar:
Swift
let high = CLLocationCoordinate2DMake(40.921628, -73.700051) let low = CLLocationCoordinate2DMake(40.477398, -74.259087) let filter = GMSAutocompleteFilter() filter.locationBias = GMSPlaceRectangularLocationOption(high, low)
Objective-C
CLLocationCoordinate2D high = CLLocationCoordinate2DMake(40.477398, -74.259087); CLLocationCoordinate2D low = CLLocationCoordinate2DMake(440.921628, -73.700051); GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.locationBias = GMSPlaceRectangularLocationOption(high, low);
iOS için Yerler Swift SDK'sı (Önizleme)
let northEast = CLLocationCoordinate2DMake(40.477398, -74.259087) let southWest = CLLocationCoordinate2DMake(40.921628, -73.700051) let filter = AutocompleteFilter(coordinateRegionBias: bias)
kaynak
Hedefe olan düz çizgi uzaklığının hesaplanacağı başlangıç noktası
hedef (distanceMeters
olarak döndürülür). Bu değer atlanırsa
düz çizgi mesafesi döndürülmez. Enlem ve boylam koordinatları olarak belirtilmelidir:
Swift
let filter = GMSAutocompleteFilter() filter.origin = CLLocation(latitude: 37.395804, longitude: -122.077023)
Objective-C
GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.origin = [[CLLocation alloc] initWithLatitude:37.395804 longitude: -122.077023];
iOS için Yerler Swift SDK'sı (Önizleme)
let filter = AutocompleteFilter(origin: CLLocation(latitude: 37.395804, longitude: -122.077023))
regionCode
Yanıtı biçimlendirmek için kullanılan bölge kodu. ccTLD ("üst düzey alan") iki karakterli bir değer olarak belirtilir. Çoğu ccTLD kodu, ISO 3166-1 kodlarıyla aynıdır; ancak bazı önemli istisnaları var. Örneğin, Birleşik Krallık'ın ccTLD'si "uk" olur (.co.uk), ISO 3166-1 kodu "gb" ise (teknik olarak " Büyük Britanya ve Kuzey İrlanda Birleşik Krallık'ı").
Geçersiz bir bölge kodu belirtirseniz API bir INVALID_ARGUMENT
döndürür.
hatası. Parametre, geçerli yasalara göre sonuçları etkileyebilir.
sessionToken
Oturum jetonları, Otomatik Tamamlama (Yeni) çağrılarını "oturumlar" olarak izleyen, kullanıcı tarafından oluşturulan dizelerdir. Otomatik Tamamlama (Yeni), kullanıcının otomatik tamamlama aramasının sorgu ve seçim aşamalarını tek bir oturumda tamamlama . Daha fazla bilgi için bkz. Oturum jetonlar.
Otomatik tamamlama (Yeni) örnekleri
Konum kısıtlaması ve konum önerileri kullan
Otomatik Tamamlama (Yeni), arama alanını kontrol etmek için varsayılan olarak IP önyargısını kullanır. IP'ye ağırlık vermede API,
cihazdaki değerleri doğru şekilde
ayırın. İsteğe bağlı olarak, locationRestriction
veya
belirtmek için locationBias
(ikisi birden değil)
alan adını tıklayın.
Konum kısıtlaması, aranacak alanı belirtir. Belirtilen dışındaki sonuçlar alanı döndürülmez. Aşağıdaki örnekte, kullanıcıları merkezde 5.000 metre yarıçaplı dairesel bir yer kısıtlamasına yönelik istek daha fazla bilgi edindiniz:
Swift
let token = GMSAutocompleteSessionToken() let center = CLLocationCoordinate2DMake(37.775061, -122.419400) let radius = 5000.0 let filter = GMSAutocompleteFilter() filter.locationRestriction = GMSPlaceCircularLocationOption(center, radius) let request = GMSAutocompleteRequest(query:"Piz") request.filter = filter request.sessionToken = token GMSPlacesClient.shared().fetchAutocompleteSuggestions(from: request, callback: { ( results, error ) in if let error = error { print("Autocomplete error: \(error)") return } if let autocompleteResults = results { for result in autocompleteResults { print("Result \(String(describing: result.placeSuggestion?.placeID)) with \(String(describing: result.placeSuggestion?.attributedFullText))") } } })
Objective-C
CLLocationCoordinate2D center = CLLocationCoordinate2DMake(37.775061, -122.419400); radius = 5000.0; GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.locationRestriction = GMSPlaceCircularLocationOption(center, radius); GMSAutocompleteRequest *request = [[GMSAutocompleteRequest alloc] initWithQuery:@"Sicilian piz"]; request.sessionToken = token; request.filter = filter; [[GMSPlacesClient sharedClient] fetchAutocompleteSuggestionsFromRequest:request callback:^(NSArray<GMSAutocompleteSuggestion *> * results, NSError * error){ // Handle response for (GMSAutocompleteSuggestion *suggestion in results) { if (suggestion.placeSuggestion) { // Show place suggestion data. } } }];
iOS için Yerler Swift SDK'sı (Önizleme)
let center = (37.775061, -122.419400) let radius = 5000.0 let restriction = CircularCoordinateRegion(center: center, radius: radius) let filter = AutocompleteFilter(coordinateRegionRestriction: restriction) let token = AutocompleteSessionToken() let autocompleteRequest = AutocompleteRequest(query: "Sicilian piz", sessionToken: token, filter: filter) switch await placesClient.fetchAutocompleteSuggestions(with: autocompleteRequest) { case .success(let autocompleteSuggestions): for suggestion in autocompleteSuggestions { switch suggestion { case .place: // Show place suggestion data. } } case .failure(let placesError): // Handle error. }
Konum yanlılığı, konumun bir yanlılık olarak kullanıldığı anlamına gelir. Bu durumda, belirtilen alanın dışındaki sonuçlar da dahil olmak üzere belirtilen konumun çevresindeki sonuçlar döndürülebilir. Aşağıdaki örnekte, önceki istek konum önyargısı kullanacak şekilde değiştirilmiştir:
Swift
let token = GMSAutocompleteSessionToken() let center = CLLocationCoordinate2DMake(37.775061, -122.419400) let radius = 5000.0 let filter = GMSAutocompleteFilter() filter.locationBias = GMSPlaceCircularLocationOption(center, radius) let request = GMSAutocompleteRequest(query:"Piz") request.filter = filter request.sessionToken = token GMSPlacesClient.shared().fetchAutocompleteSuggestions(from: request, callback: { ( results, error ) in if let error = error { print("Autocomplete error: \(error)") return } if let autocompleteResults = results { for result in autocompleteResults { print("Result \(String(describing: result.placeSuggestion?.placeID)) with \(String(describing: result.placeSuggestion?.attributedFullText))") } } })
Objective-C
CLLocationCoordinate2D center = CLLocationCoordinate2DMake(37.775061, -122.419400); radius = 5000.0; GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.locationBias = GMSPlaceCircularLocationOption(center, radius); GMSAutocompleteRequest *request = [[GMSAutocompleteRequest alloc] initWithQuery:@"Sicilian piz"]; request.sessionToken = token; request.filter = filter; [[GMSPlacesClient sharedClient] fetchAutocompleteSuggestionsFromRequest:request callback:^(NSArray<GMSAutocompleteSuggestion *> * results, NSError * error){ // Handle response for (GMSAutocompleteSuggestion *suggestion in results) { if (suggestion.placeSuggestion) { // Show place suggestion data. } } }];
iOS için Yerler Swift SDK'sı (Önizleme)
let center = (37.775061, -122.419400) let radius = 5000.0 let bias = CircularCoordinateRegion(center: center, radius: radius) let filter = AutocompleteFilter(coordinateRegionBias: bias) let token = AutocompleteSessionToken() let autocompleteRequest = AutocompleteRequest(query: "Sicilian piz", sessionToken: token, filter: filter) switch await placesClient.fetchAutocompleteSuggestions(with: autocompleteRequest) { case .success(let autocompleteSuggestions): for suggestion in autocompleteSuggestions { switch suggestion { case .place: // Show place suggestion data. } } case .failure(let placesError): // Handle error. }
Kullanım türleri
Bir isteğin sonuçlarını belirli bir sayıyla sınırlamak için type (türler) parametresini kullanın aşağıdaki gibi yazın: Tablo A ve Tablo B. Hedeflerinize göre bir en fazla beş değer dizisidir. Atlanırsa tüm türler döndürülür.
Aşağıdaki örnekte "Futbol" sorgu dizesi belirtiliyor ve Yeşil Ofis’te
parametresini kullanarak sonuçları
"sporting_goods_store"
:
Swift
let token = GMSAutocompleteSessionToken() let filter = GMSAutocompleteFilter() filter.types = ["sporting_goods_store"] let request = GMSAutocompleteRequest(query:"Soccer") request.filter = filter request.sessionToken = token GMSPlacesClient.shared().fetchAutocompleteSuggestions(from: request, callback: { ( results, error ) in if let error = error { print("Autocomplete error: \(error)") return } if let autocompleteResults = results { for result in autocompleteResults { print("Result \(String(describing: result.placeSuggestion?.placeID)) with \(String(describing: result.placeSuggestion?.attributedFullText))") } } })
Objective-C
GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.types = @[ "sporting_goods_store" ]; GMSAutocompleteRequest *request = [[GMSAutocompleteRequest alloc] initWithQuery:@"Soccer"]; request.sessionToken = token; request.filter = filter; [[GMSPlacesClient sharedClient] fetchAutocompleteSuggestionsFromRequest:request callback:^(NSArray<GMSAutocompleteSuggestion *> * results, NSError * error){ // Handle response for (GMSAutocompleteSuggestion *suggestion in results) { if (suggestion.placeSuggestion) { // Show place suggestion data. } } }];
iOS için Yerler Swift SDK'sı (Önizleme)
let filter = AutocompleteFilter(types: [ PlaceType(rawValue: "sporting_goods_store") ]) let token = AutocompleteSessionToken() let autocompleteRequest = AutocompleteRequest(query: "Soccer", sessionToken: token, filter: filter) switch await placesClient.fetchAutocompleteSuggestions(with: autocompleteRequest) { case .success(let autocompleteSuggestions): for suggestion in autocompleteSuggestions { switch suggestion { case .place: // Show place suggestion data. } } case .failure(let placesError): // Handle error. }
Kaynağı kullan
İsteğe origin
parametresini eklediğinizde,
enlem ve boylam koordinatlarıyla birlikte API,
başlangıç noktasından
hedefe doğru ayrılmalıdır. Yanıt,
distanceMeters
olarak mesafe.
Bu örnekte başlangıç noktası San Francisco'nun merkezi olarak ayarlanmaktadır:
Swift
let token = GMSAutocompleteSessionToken() let origin = CLLocation(latitude: 37.7749, longitude: -122.4194) let filter = GMSAutocompleteFilter() filter.origin = origin let request = GMSAutocompleteRequest(query:"Amoeba") request.filter = filter request.sessionToken = token GMSPlacesClient.shared().fetchAutocompleteSuggestions(from: request, callback: { ( results, error ) in if let error = error { print("Autocomplete error: \(error)") return } if let autocompleteResults = results { for result in autocompleteResults { print("Result \(String(describing: result.placeSuggestion?.placeID)) with \(String(describing: result.placeSuggestion?.attributedFullText)) and distance: \(String(describing: result.placeSuggestion?.distanceMeters))") } } })
Objective-C
GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.origin = [[CLLocation alloc] initWithLatitude:37.395804 longitude:-122.077023]; GMSAutocompleteRequest *request = [[GMSAutocompleteRequest alloc] initWithQuery:@"Amoeba"]; request.sessionToken = token; request.filter = filter; [[GMSPlacesClient sharedClient] fetchAutocompleteSuggestionsFromRequest:request callback:^(NSArray<GMSAutocompleteSuggestion *> * results, NSError * error){ // Handle response for (GMSAutocompleteSuggestion *suggestion in results) { if (suggestion.placeSuggestion) { // Show place suggestion data. } } }];
iOS için Yerler Swift SDK'sı (Önizleme)
let filter = AutocompleteFilter(origin: CLLocation(latitude: 37.7749, longitude: -122.4194)) let token = AutocompleteSessionToken() let autocompleteRequest = AutocompleteRequest(query: "Amoeba", sessionToken: token, filter: filter) switch await placesClient.fetchAutocompleteSuggestions(with: autocompleteRequest) { case .success(let autocompleteSuggestions): for suggestion in autocompleteSuggestions { switch suggestion { case .place: // Show place suggestion data. } } case .failure(let placesError): // Handle error. }
İlişkilendirmeler
Otomatik tamamlama (Yeni) özelliğini bir haritadır. Harita gösteriyorsanız bu bir Google haritası olmalıdır. Gösterdiğinizde Otomatik tamamlama (Yeni) hizmetinden öneriler harita olmadan, arama sonuçlarında satır içi olarak görüntülenen Google logosunu field/results. Daha fazla bilgi için bkz. Google logosunu görüntüleme ve ilişkilendirmeleri.