Служба Autocomplete (New) — это API iOS, которая возвращает предложения мест в ответ на запрос. В запросе укажите строку текстового поиска и географические границы, которые управляют областью поиска.
Служба автозаполнения (новая) может сопоставлять полные слова и подстроки ввода, разрешая названия мест, адреса и плюс-коды . Таким образом, приложения могут отправлять запросы по мере ввода текста пользователем, чтобы предлагать предложения мест на лету.
Предложения мест — это такие места, как предприятия, адреса и достопримечательности, основанные на указанной вводимой текстовой строке и области поиска.
Например, вы вызываете API, используя в качестве входных данных строку, содержащую частичный пользовательский ввод "Spagh", с областью поиска, ограниченной Нью-Йорком. Затем ответ содержит список предложений мест , которые соответствуют строке поиска и области поиска, например, ресторан под названием "Cafe Spaghetti", а также сведения о месте.
Возвращенные предложения мест предназначены для представления пользователю, чтобы он мог выбрать желаемое место. Вы можете сделать запрос Place Details (New), чтобы получить больше информации о любом из возвращенных предложений мест.
Интегрировать функцию автозаполнения (новая) в свое приложение можно двумя основными способами:
- Получайте прогнозы мест программным способом : вызывайте API напрямую, чтобы получить прогнозы и отобразить их в пользовательском интерфейсе.
- Добавьте виджет автозаполнения мест : предоставляет готовый к использованию интерфейс автозаполнения поиска, который отображает подсказки по мере ввода текста пользователем.
Получите прогнозы мест программным способом
Автозаполнение (новых) запросов
Создайте запрос автозаполнения, вызвав метод в GMSPlacesClient
. Вы можете передать параметры в объекте GMSAutocompleteRequest
. Ответ предоставляет предложения автозаполнения в объекте GMSAutocompletePlaceSuggestion
.
Обязательны ключ API и параметры query
. Вы также можете включить GMSAutocompleteSessionToken
для связывания запросов с сеансом выставления счетов и GMSAutocompleteFilter
для применения к результатам.
Версия Swift SDK мест
Создайте запрос автозаполнения, вызвав метод в PlacesClient
. Вы можете передать параметры в объект AutocompleteRequest
. Ответ предоставляет предложения автозаполнения в объекте AutocompletePlaceSuggestion
.
Обязательны ключ API и параметры query
. Вы также можете включить AutocompleteSessionToken
для связывания запросов с сеансом выставления счетов и AutocompleteFilter
для применения к результатам.
Дополнительную информацию об обязательных и необязательных параметрах см. в разделе «Параметры» настоящего документа .
Место Swift SDK
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. }
Быстрый
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. } } }];
Автозаполнение (новых) ответов
Autocomplete возвращает массив из до пяти экземпляров GMSAutocompleteSuggestion
. Массив содержит:
-
placeID
-
types
: Типы, которые применяются к этому месту. -
distanceMeters
: Расстояние от исходной точки. -
attributedFullText
: Полный текст предложения, понятный человеку. -
attributedPrimaryText
: первичный текст предложения, понятный человеку. -
attributedSecondaryText
: вторичный текст предложения, понятный человеку. -
structuredFormat
: конкретное имя и неоднозначный текст, например город или регион.
Требуемые параметры
запрос
Текстовая строка, по которой нужно искать. Укажите полные слова и подстроки, названия мест, адреса и плюс-коды . Служба автозаполнения (новая) возвращает совпадения кандидатов на основе этой строки и упорядочивает результаты на основе их предполагаемой релевантности.
Необязательные параметры
sessionToken
Токены сеанса — это созданные пользователем строки, которые отслеживают вызовы Autocomplete (New) — как вызовы, выполненные через виджет, так и программные вызовы — как «сеансы». Autocomplete (New) использует токены сеанса для группировки фаз запроса и выбора поиска пользователя с автозаполнением в отдельный сеанс для выставления счетов. Для получения дополнительной информации см. Токены сеанса .
Необязательные параметры AutocompleteFilter
типы
Место может иметь только один основной тип из типов Table A или Table B, связанных с ним. Например, основным типом может быть mexican_restaurant
или steak_house
.
По умолчанию API возвращает все места на основе input
параметра, независимо от значения первичного типа, связанного с местом. Ограничьте результаты определенным первичным типом или первичными типами, передав параметр types
.
Используйте этот параметр, чтобы указать до пяти значений типа из таблицы A или таблицы B. Место должно соответствовать одному из указанных значений основного типа, чтобы быть включенным в ответ.
Запрос отклоняется с ошибкой INVALID_REQUEST
, если:
- Указано более пяти типов.
- Указываются все нераспознанные типы.
Например, чтобы ограничить результаты магазинами спортивных товаров, укажите этот тип в AutocompleteFilter
:
Место Swift SDK
let filter = AutocompleteFilter(types: [ PlaceType(rawValue: "sporting_goods_store") ])
Быстрый
let filter = GMSAutocompleteFilter() filter.types = ["sporting_goods_store"]
Objective-C
GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.types = @[ "sporting_goods_store" ];
страны
Включать только результаты из списка указанных регионов, указанных как массив из двухсимвольных значений ccTLD («домен верхнего уровня»), не более 15. Если этот параметр опущен, к ответу не применяются ограничения. Например, чтобы ограничить регионы Германией и Францией:
Место Swift SDK
let filter = AutocompleteFilter(countries: ["DE", "FR"])
Быстрый
let filter = GMSAutocompleteFilter() filter.countries = ["DE", "FR"]
Objective-C
GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.countries = @[ @"DE", @"FR" ];
Если указать и locationRestriction
, и countries
, результаты будут расположены в области пересечения двух настроек.
вводСмещение
Смещение символа Unicode, начинающееся с нуля и указывающее позицию курсора в input
. Позиция курсора может влиять на то, какие прогнозы будут возвращены. Если пусто, по умолчанию используется длина input
.
местоположениеПредвзятость или ограничение местоположения
Вы можете указать locationBias
или locationRestriction
, но не оба, чтобы определить область поиска. Думайте о locationRestriction
как об указании региона, в котором должны быть результаты, а locationBias
как об указании региона, в котором должны быть результаты, но могут быть за пределами области.
locationBias
указывает область поиска. Это местоположение служит смещением, что означает, что могут быть возвращены результаты вокруг указанного местоположения, включая результаты за пределами указанной области.locationRestriction
указывает область поиска. Результаты за пределами указанной области не возвращаются.
Укажите область locationBias
или locationRestriction
как прямоугольную область просмотра или как круг.
Окружность определяется точкой центра и радиусом в метрах. Радиус должен быть в диапазоне от 0,0 до 50000,0 включительно. Значение по умолчанию — 0,0. Для locationRestriction
необходимо задать радиус больше 0,0. В противном случае запрос не вернет никаких результатов.
Например:
Место Swift SDK
let center = CLLocationCoordinate2DMake(40.477398, -74.259087) let bias = CircularCoordinateRegion(center: center, radius: 1000.0) let filter = AutocompleteFilter(coordinateRegionBias: bias)
Быстрый
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);
Прямоугольник — это широтно-долготная область просмотра, представленная в виде двух диагонально противоположных low
и high
точек. Область просмотра считается замкнутой областью, то есть она включает ее границу. Границы широты должны находиться в диапазоне от -90 до 90 градусов включительно, а границы долготы должны находиться в диапазоне от -180 до 180 градусов включительно:
- Если
low
=high
, область просмотра состоит из этой единственной точки. - Если
low.longitude
>high.longitude
, диапазон долготы инвертируется (область просмотра пересекает линию долготы 180 градусов). - Если
low.longitude
= -180 градусов, аhigh.longitude
= 180 градусов, область просмотра включает все долготы. - Если
low.longitude
= 180 градусов, аhigh.longitude
= -180 градусов, то диапазон долготы пуст.
Оба low
и high
должны быть заполнены, и представленное поле не может быть пустым. Пустая область просмотра приводит к ошибке.
Например, эта область просмотра полностью охватывает Нью-Йорк:
Место Swift SDK
let northEast = CLLocationCoordinate2DMake(40.477398, -74.259087) let southWest = CLLocationCoordinate2DMake(40.921628, -73.700051) let filter = AutocompleteFilter(coordinateRegionBias: bias)
Быстрый
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);
источник
Исходная точка, от которой рассчитывается расстояние по прямой до пункта назначения (возвращается как distanceMeters
). Если это значение пропущено, расстояние по прямой не будет возвращено. Необходимо указать как координаты широты и долготы:
Место Swift SDK
let filter = AutocompleteFilter(origin: CLLocation(latitude: 37.395804, longitude: -122.077023))
Быстрый
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];
Код региона
Код региона, используемый для форматирования ответа, указанный как двухсимвольное значение ccTLD («домен верхнего уровня») . Большинство кодов ccTLD идентичны кодам ISO 3166-1, за некоторыми заметными исключениями. Например, ccTLD Соединенного Королевства — «uk» (.co.uk), а его код ISO 3166-1 — «gb» (технически для субъекта «Соединенное Королевство Великобритании и Северной Ирландии»).
Если указать недопустимый код региона, API возвращает ошибку INVALID_ARGUMENT
. Параметр может повлиять на результаты в зависимости от применимого законодательства.
Добавьте виджет автозаполнения мест
Чтобы упростить предоставление согласованного опыта автозаполнения мест, вы можете добавить виджет автозаполнения мест в свое приложение. Виджет предоставляет выделенный полноэкранный интерфейс, который обрабатывает пользовательский ввод и отображает пользователю прогнозы мест, возвращая объекты AutocompletePlaceSuggestion
в приложение. Затем вы можете сделать запрос Place Details (New) , чтобы получить дополнительную информацию о любом из прогнозов мест.
Как и при программном получении прогнозов мест , виджет автозаполнения мест позволяет использовать токены сеанса для группировки запросов автозаполнения в сеанс для выставления счетов. Вы можете передать токен сеанса, вызвав AutocompleteSessionToken()
.
Если вы не предоставите токен сеанса, виджет создаст для вас токен сеанса Autocomplete, который затем можно будет получить из обратного вызова onSelection
. Для получения дополнительной информации об использовании токенов сеанса см. О токенах сеанса .
Если значение привязки show
установлено на true
, пользователь будет перенесен в полноэкранный режим, где он сможет выбрать место. По мере того, как пользователь печатает, виджет возвращает предложения мест, таких как компании, адреса и точки интереса. Когда пользователь выбирает место, виджет вызывает обработчик onSelection
с выбранным местом и закрывает полноэкранный режим.
Параметры виджета «Автозаполнение»
В дополнение к параметрам, доступным программно , виджет автозаполнения мест также предлагает следующие параметры.
показывать
show
указывает, будет ли отображаться виджет.
АвтозаполнениеUIНастройка
Параметры AutocompleteUICustomization
определяют настройки пользовательского интерфейса, которые следует применить к виджету. Параметры настройки:
-
AutocompleteListDensity
. Этот параметр позволяет выбрать плотность списка предложений:multiLine
илиtwoLine
. -
AutocompleteUIIcon
. Этот параметр позволяет выбрать, показывать ли значок по умолчанию для каждого элемента списка.
onSelection
Закрытие, которое будет запущено после выбора места.
onError
Замыкание, которое будет запущено при возникновении ошибки. Если произойдет ошибка, будет передан PlacesError
.
Примеры автозаполнения (новые)
Использовать locationRestriction и locationBias
Autocomplete (New) использует IP biasing по умолчанию для управления областью поиска. При IP biasing API использует IP-адрес устройства для смещения результатов. Вы можете опционально использовать locationRestriction
или locationBias
, но не оба, чтобы указать область поиска.
Ограничение местоположения указывает область поиска. Результаты за пределами указанной области не возвращаются. В следующем примере ограничение местоположения используется для ограничения запроса круговым ограничением местоположения с радиусом 5000 метров с центром в Сан-Франциско:
Место Swift SDK
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. }
Быстрый
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. } } }];
При смещении местоположения местоположение служит смещением, что означает, что могут быть возвращены результаты вокруг указанного местоположения, включая результаты за пределами указанной области. Следующий пример изменяет предыдущий запрос для использования смещения местоположения:
Место Swift SDK
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. }
Быстрый
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. } } }];
Используйте типы
Используйте параметр types, чтобы ограничить результаты запроса определенным типом, как указано в таблице A и таблице B. Вы можете указать массив из пяти значений. Если параметр опущен, возвращаются все типы.
В следующем примере указывается строка запроса «Футбол» и используется параметр типов для ограничения результатов заведениями типа "sporting_goods_store"
:
Место Swift SDK
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. }
Быстрый
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. } } }];
Использовать источник
Когда вы включаете параметр origin
в запрос, указанный как координаты широты и долготы, API включает в ответ расстояние по прямой от источника до пункта назначения. Ответ возвращает расстояние как distanceMeters
.
В этом примере начало координат устанавливается в центре Сан-Франциско:
Место Swift SDK
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. }
Быстрый
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. } } }];
Добавьте виджет автозаполнения мест
Место Swift SDK
struct PlaceAutocompleteDemoView: View { @State private var fetchedPlace: Place? @State private var placesError: PlacesError? @State private var showWidget = false public var body: some View { VStack { Button("Search for a place") { showWidget.toggle() } .placeAutocomplete( show: $showWidget, onSelection: { (autocompletePlaceSuggestion, autocompleteSessionToken) in Task { let placesClient = await PlacesClient.shared let fetchPlaceRequest = FetchPlaceRequest( placeID: autocompletePlaceSuggestion.placeID, placeProperties: [.displayName, .formattedAddress], sessionToken: autocompleteSessionToken ) switch await placesClient.fetchPlace(with: fetchPlaceRequest) { case .success(let place): print("Fetched place: \(place)") self.fetchedPlace = place case .failure(let placesError): print("Failed to fetch place: \(placesError)") self.placesError = placesError } } }, onError: { placesError in self.placesError = placesError } ) } } }
Атрибуции
Вы можете использовать Autocomplete (New) даже без карты. Если вы показываете карту, это должна быть карта Google. Когда вы показываете предложения от службы Autocomplete (New) без карты, вы должны включить логотип Google, отображаемый в строке с полем поиска/результатами. Для получения дополнительной информации см. Отображение логотипа Google и атрибуции .