Служба автозаполнения (новая) – это API iOS, который возвращает предложения мест в ответ на запрос. В запросе укажите текстовую строку поиска и географические границы, контролирующие область поиска.
Служба автозаполнения (новая) может сопоставлять полные слова и подстроки входных данных, распознавая названия мест, адреса и коды плюсов . Таким образом, приложения могут отправлять запросы по мере ввода пользователем текста, чтобы оперативно предлагать места.
Предложения мест — это места, например предприятия, адреса и достопримечательности, на основе указанной входной текстовой строки и области поиска.
Например, вы вызываете API, используя в качестве входных данных строку, содержащую частичный пользовательский ввод «Спаг», при этом область поиска ограничена Нью-Йорком. Затем ответ содержит список предложений мест , соответствующих строке поиска и области поиска, например ресторан «Кафе Спагетти», а также подробную информацию об этом месте.
Возвращенные предложения мест предназначены для представления пользователю, чтобы он мог выбрать желаемое место. Вы можете сделать запрос «Сведения о месте (новое)» , чтобы получить дополнительную информацию о любом из возвращенных предложений мест.
Автозаполнение (новые) запросы
Создайте запрос автозаполнения, вызвав метод GMSPlaceClient
. Вы можете передавать параметры в объект GMSAutocompleteRequest
. Ответ предоставляет предложения автозаполнения в объекте GMSAutocompletePlaceSuggestion
.
Требуется ключ API и параметры query
. Вы также можете включить GMSAutocompleteSessionToken
, чтобы связать запросы с сеансом выставления счетов, и GMSAutocompleteFilter
чтобы применить его к результатам.
Дополнительную информацию об обязательных и необязательных параметрах см. в разделе «Параметры» данного документа .
Быстрый
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))") } } })
Цель-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. } } }];
Places Swift SDK для iOS (предварительная версия)
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. }
Автозаполнение (новые) ответы
Автозаполнение возвращает массив, содержащий до пяти экземпляров GMSAutocompleteSuggestion
. Массив содержит:
-
placeID
-
types
: типы, применимые к этому месту. -
distanceMeters
: расстояние от начала координат. -
attributedFullText
: Полный удобочитаемый текст предложения. -
attributedPrimaryText
: Удобочитаемый основной текст предложения. -
attributedSecondaryText
: удобочитаемый вторичный текст предложения. -
structuredFormat
: конкретное имя и текст, устраняющий неоднозначность, например город или регион.
Обязательные параметры
запрос
Текстовая строка, по которой осуществляется поиск. Укажите полные слова и подстроки, географические названия, адреса и плюсовые коды . Служба автозаполнения (новая) возвращает совпадения кандидатов на основе этой строки и упорядочивает результаты на основе их предполагаемой релевантности.
Дополнительные параметры
типы
Место может иметь только один основной тип из связанных с ним типов Таблица A или Таблица B. Например, основным типом может быть mexican_restaurant
или steak_house
.
По умолчанию API возвращает все места на основе input
параметра, независимо от значения основного типа, связанного с этим местом. Ограничьте результаты определенным основным типом или основными типами, передав параметр types
.
Используйте этот параметр, чтобы указать до пяти значений типа из таблицы A или таблицы B. Для включения в ответ место должно соответствовать одному из указанных значений основного типа.
Запрос отклоняется с ошибкой INVALID_REQUEST
, если:
- Указано более пяти типов.
- Указываются любые нераспознанные типы.
страны
Включайте результаты только из списка указанных регионов, заданного в виде массива, содержащего до 15 двухсимвольных значений ccTLD («домен верхнего уровня») . Если этот параметр опущен, к ответу не применяются никакие ограничения. Например, чтобы ограничить регионы Германией и Францией:
Быстрый
let filter = GMSAutocompleteFilter() filter.countries = ["DE", "FR"]
Цель-C
GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.countries = @[ @"DE", @"FR" ];
Places Swift SDK для iOS (предварительная версия)
let filter = AutocompleteFilter(countries: ["DE", "FR"])
Если вы укажете и locationRestriction
, и countries
, результаты будут расположены в области пересечения двух настроек.
inputOffset
Смещение символов Юникода, отсчитываемое от нуля, указывающее позицию курсора во input
. Положение курсора может влиять на то, какие прогнозы возвращаются. Если пусто, по умолчанию используется длина input
.
предвзятость местоположения или ограничение местоположения
Вы можете указать locationBias
или locationRestriction
, но не оба, чтобы определить область поиска. Подумайте о locationRestriction
как об указании региона, в котором должны находиться результаты, а locationBias
как об указании региона, рядом с которым результаты должны находиться, но могут находиться за его пределами.
locationBias
указывает область для поиска. Это местоположение служит смещением, что означает, что могут быть возвращены результаты вокруг указанного местоположения, включая результаты за пределами указанной области.locationRestriction
указывает область для поиска. Результаты за пределами указанной области не возвращаются.
Укажите область locationBias
или locationRestriction
в виде прямоугольной области просмотра или круга.
Круг определяется центральной точкой и радиусом в метрах. Радиус должен находиться в диапазоне от 0,0 до 50000,0 включительно. Значение по умолчанию — 0,0. Для locationRestriction
необходимо установить радиус больше 0,0. В противном случае запрос не возвращает результатов.
Например:
Быстрый
let center = CLLocationCoordinate2DMake(40.730610, -73.935242) let radius = 1000.0 filter.locationBias = GMSPlaceCircularLocationOption(center, radius)
Цель-C
CLLocationCoordinate2D center = CLLocationCoordinate2DMake(40.730610, -73.935242); radius = 1000.0; GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.locationBias = GMSPlaceCircularLocationOption(center, radius);
Places Swift SDK для iOS (предварительная версия)
let center = CLLocationCoordinate2DMake(40.477398, -74.259087) let bias = CircularCoordinateRegion(center: center, radius: 1000.0) let filter = AutocompleteFilter(coordinateRegionBias: bias)
Прямоугольник — это окно просмотра широты и долготы, представленное в виде двух диагонально противоположных 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
должны быть заполнены, а представленное поле не может быть пустым. Пустое окно просмотра приводит к ошибке.
Например, это окно просмотра полностью охватывает Нью-Йорк:
Быстрый
let high = CLLocationCoordinate2DMake(40.921628, -73.700051) let low = CLLocationCoordinate2DMake(40.477398, -74.259087) let filter = GMSAutocompleteFilter() filter.locationBias = GMSPlaceRectangularLocationOption(high, low)
Цель-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);
Places Swift SDK для iOS (предварительная версия)
let northEast = CLLocationCoordinate2DMake(40.477398, -74.259087) let southWest = CLLocationCoordinate2DMake(40.921628, -73.700051) let filter = AutocompleteFilter(coordinateRegionBias: bias)
источник
Исходная точка, от которой рассчитывается расстояние по прямой до пункта назначения (возвращается как distanceMeters
). Если это значение опущено, расстояние по прямой не будет возвращено. Необходимо указать координаты широты и долготы:
Быстрый
let filter = GMSAutocompleteFilter() filter.origin = CLLocation(latitude: 37.395804, longitude: -122.077023)
Цель-C
GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.origin = [[CLLocation alloc] initWithLatitude:37.395804 longitude: -122.077023];
Places Swift SDK для iOS (предварительная версия)
let filter = AutocompleteFilter(origin: CLLocation(latitude: 37.395804, longitude: -122.077023))
Код региона
Код региона, используемый для форматирования ответа, указанный в виде двухсимвольного значения ccTLD («домен верхнего уровня») . Большинство кодов ccTLD идентичны кодам ISO 3166-1, за некоторыми заметными исключениями. Например, нДВУ Соединенного Королевства — «uk» (.co.uk), а его код ISO 3166-1 — «gb» (технически для организации «Соединенное Королевство Великобритании и Северной Ирландии»).
Если вы укажете неверный код региона, API вернет ошибку INVALID_ARGUMENT
. Параметр может повлиять на результаты в соответствии с действующим законодательством.
сессионный токен
Токены сеанса — это созданные пользователем строки, которые отслеживают вызовы автозаполнения (новые) как «сеансы». Автозаполнение (новое) использует токены сеанса для группировки этапов запроса и выбора пользовательского поиска с автозаполнением в отдельный сеанс для целей выставления счетов. Дополнительные сведения см. в разделе Токены сеанса .
Примеры автозаполнения (новые)
Используйте locationRestriction и locationBias
Автозаполнение (новое) по умолчанию использует смещение IP-адресов для управления областью поиска. При смещении IP API использует IP-адрес устройства для смещения результатов. При желании вы можете использовать locationRestriction
или locationBias
, но не оба, чтобы указать область для поиска.
Ограничение местоположения определяет область поиска. Результаты за пределами указанной области не возвращаются. В следующем примере используется ограничение местоположения, чтобы ограничить запрос круговым ограничением местоположения радиусом 5000 метров с центром в Сан-Франциско:
Быстрый
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))") } } })
Цель-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. } } }];
Places Swift SDK для iOS (предварительная версия)
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.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))") } } })
Цель-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. } } }];
Places Swift SDK для iOS (предварительная версия)
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. }
Типы использования
Используйте параметр типов, чтобы ограничить результаты запроса определенным типом, указанным в таблице A и таблице B. Вы можете указать массив, содержащий до пяти значений. Если этот параметр опущен, возвращаются все типы.
В следующем примере указывается строка запроса «Футбол» и используется параметр типов, чтобы ограничить результаты заведениями типа "sporting_goods_store"
:
Быстрый
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))") } } })
Цель-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. } } }];
Places Swift SDK для iOS (предварительная версия)
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. }
Использовать происхождение
Когда вы включаете в запрос параметр origin
, указанный как координаты широты и долготы, API включает в ответ расстояние по прямой от источника до пункта назначения. Ответ возвращает расстояние в виде distanceMeters
.
В этом примере начало координат устанавливается в центр Сан-Франциско:
Быстрый
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))") } } })
Цель-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. } } }];
Places Swift SDK для iOS (предварительная версия)
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. }
Атрибуции
Вы можете использовать автозаполнение (новое) даже без карты. Если вы показываете карту, это должна быть карта Google. Когда вы отображаете предложения от службы автозаполнения (новая) без карты, вы должны включить логотип Google, отображаемый в поле поиска/результатах. Дополнительную информацию см. в разделе «Отображение логотипа Google и сведений об авторстве» .
,Служба автозаполнения (новая) – это API iOS, который возвращает предложения мест в ответ на запрос. В запросе укажите текстовую строку поиска и географические границы, контролирующие область поиска.
Служба автозаполнения (новая) может сопоставлять полные слова и подстроки входных данных, распознавая названия мест, адреса и коды плюсов . Таким образом, приложения могут отправлять запросы по мере ввода пользователем текста, чтобы оперативно предлагать места.
Предложения мест — это места, например предприятия, адреса и достопримечательности, на основе указанной входной текстовой строки и области поиска.
Например, вы вызываете API, используя в качестве входных данных строку, содержащую частичный пользовательский ввод «Спаг», при этом область поиска ограничена Нью-Йорком. Затем ответ содержит список предложений мест , соответствующих строке поиска и области поиска, например ресторан «Кафе Спагетти», а также подробную информацию об этом месте.
Возвращенные предложения мест предназначены для представления пользователю, чтобы он мог выбрать желаемое место. Вы можете сделать запрос о месте (новое), чтобы получить дополнительную информацию о любом из возвращенных предложений мест.
Автозаполнение (новые) запросы
Создайте запрос автозаполнения, вызвав метод GMSPlaceClient
. Вы можете передавать параметры в объекте GMSAutocompleteRequest
. Ответ предоставляет предложения автозаполнения в объекте GMSAutocompletePlaceSuggestion
.
Требуется ключ API и параметры query
. Вы также можете включить GMSAutocompleteSessionToken
, чтобы связать запросы с сеансом выставления счетов, и GMSAutocompleteFilter
чтобы применить его к результатам.
Дополнительную информацию об обязательных и необязательных параметрах см. в разделе «Параметры» данного документа .
Быстрый
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))") } } })
Цель-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. } } }];
Places Swift SDK для iOS (предварительная версия)
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. }
Автозаполнение (новые) ответы
Автозаполнение возвращает массив, содержащий до пяти экземпляров GMSAutocompleteSuggestion
. Массив содержит:
-
placeID
-
types
: типы, применимые к этому месту. -
distanceMeters
: расстояние от начала координат. -
attributedFullText
: Полный удобочитаемый текст предложения. -
attributedPrimaryText
: Удобочитаемый основной текст предложения. -
attributedSecondaryText
: удобочитаемый вторичный текст предложения. -
structuredFormat
: конкретное имя и текст, устраняющий неоднозначность, например город или регион.
Обязательные параметры
запрос
Текстовая строка, по которой осуществляется поиск. Укажите полные слова и подстроки, географические названия, адреса и плюсовые коды . Служба автозаполнения (новая) возвращает совпадения кандидатов на основе этой строки и упорядочивает результаты на основе их предполагаемой релевантности.
Дополнительные параметры
типы
Место может иметь только один основной тип из связанных с ним типов Таблица A или Таблица B. Например, основным типом может быть mexican_restaurant
или steak_house
.
По умолчанию API возвращает все места на основе input
параметра, независимо от значения основного типа, связанного с этим местом. Ограничьте результаты определенным основным типом или основными типами, передав параметр types
.
Используйте этот параметр, чтобы указать до пяти значений типа из таблицы A или таблицы B. Для включения в ответ место должно соответствовать одному из указанных значений основного типа.
Запрос отклоняется с ошибкой INVALID_REQUEST
, если:
- Указано более пяти типов.
- Указываются любые нераспознанные типы.
страны
Включайте результаты только из списка указанных регионов, заданного в виде массива, содержащего до 15 двухсимвольных значений ccTLD («домен верхнего уровня») . Если этот параметр опущен, к ответу не применяются никакие ограничения. Например, чтобы ограничить регионы Германией и Францией:
Быстрый
let filter = GMSAutocompleteFilter() filter.countries = ["DE", "FR"]
Цель-C
GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.countries = @[ @"DE", @"FR" ];
Places Swift SDK для iOS (предварительная версия)
let filter = AutocompleteFilter(countries: ["DE", "FR"])
Если вы укажете и locationRestriction
, и countries
, результаты будут расположены в области пересечения двух настроек.
inputOffset
Смещение символов Юникода, отсчитываемое от нуля, указывающее позицию курсора во input
. Положение курсора может влиять на то, какие прогнозы возвращаются. Если пусто, по умолчанию используется длина input
.
предвзятость местоположения или ограничение местоположения
Вы можете указать locationBias
или locationRestriction
, но не оба, чтобы определить область поиска. Подумайте о locationRestriction
как об указании региона, в котором должны находиться результаты, а locationBias
как об указании региона, рядом с которым результаты должны находиться, но могут находиться за его пределами.
locationBias
указывает область для поиска. Это местоположение служит смещением, что означает, что могут быть возвращены результаты вокруг указанного местоположения, включая результаты за пределами указанной области.locationRestriction
указывает область для поиска. Результаты за пределами указанной области не возвращаются.
Укажите область locationBias
или locationRestriction
в виде прямоугольной области просмотра или круга.
Круг определяется центральной точкой и радиусом в метрах. Радиус должен находиться в диапазоне от 0,0 до 50000,0 включительно. Значение по умолчанию — 0,0. Для locationRestriction
необходимо установить радиус больше 0,0. В противном случае запрос не возвращает результатов.
Например:
Быстрый
let center = CLLocationCoordinate2DMake(40.730610, -73.935242) let radius = 1000.0 filter.locationBias = GMSPlaceCircularLocationOption(center, radius)
Цель-C
CLLocationCoordinate2D center = CLLocationCoordinate2DMake(40.730610, -73.935242); radius = 1000.0; GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.locationBias = GMSPlaceCircularLocationOption(center, radius);
Places Swift SDK для iOS (предварительная версия)
let center = CLLocationCoordinate2DMake(40.477398, -74.259087) let bias = CircularCoordinateRegion(center: center, radius: 1000.0) let filter = AutocompleteFilter(coordinateRegionBias: bias)
Прямоугольник — это окно просмотра широты и долготы, представленное в виде двух диагонально противоположных 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
должны быть заполнены, а представленное поле не может быть пустым. Пустое окно просмотра приводит к ошибке.
Например, это окно просмотра полностью охватывает Нью-Йорк:
Быстрый
let high = CLLocationCoordinate2DMake(40.921628, -73.700051) let low = CLLocationCoordinate2DMake(40.477398, -74.259087) let filter = GMSAutocompleteFilter() filter.locationBias = GMSPlaceRectangularLocationOption(high, low)
Цель-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);
Places Swift SDK для iOS (предварительная версия)
let northEast = CLLocationCoordinate2DMake(40.477398, -74.259087) let southWest = CLLocationCoordinate2DMake(40.921628, -73.700051) let filter = AutocompleteFilter(coordinateRegionBias: bias)
источник
Исходная точка, от которой рассчитывается расстояние по прямой до пункта назначения (возвращается как distanceMeters
). Если это значение опущено, расстояние по прямой не будет возвращено. Необходимо указать координаты широты и долготы:
Быстрый
let filter = GMSAutocompleteFilter() filter.origin = CLLocation(latitude: 37.395804, longitude: -122.077023)
Цель-C
GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.origin = [[CLLocation alloc] initWithLatitude:37.395804 longitude: -122.077023];
Places Swift SDK для iOS (предварительная версия)
let filter = AutocompleteFilter(origin: CLLocation(latitude: 37.395804, longitude: -122.077023))
Код региона
Код региона, используемый для форматирования ответа, указанный в виде двухсимвольного значения ccTLD («домен верхнего уровня») . Большинство кодов ccTLD идентичны кодам ISO 3166-1, за некоторыми заметными исключениями. Например, нДВУ Соединенного Королевства — «uk» (.co.uk), а его код ISO 3166-1 — «gb» (технически для организации «Соединенное Королевство Великобритании и Северной Ирландии»).
Если вы укажете неверный код региона, API вернет ошибку INVALID_ARGUMENT
. Параметр может повлиять на результаты в соответствии с действующим законодательством.
сессионный токен
Токены сеанса — это созданные пользователем строки, которые отслеживают вызовы автозаполнения (новые) как «сеансы». Автозаполнение (новое) использует токены сеанса для группировки этапов запроса и выбора пользовательского поиска с автозаполнением в отдельный сеанс для целей выставления счетов. Дополнительные сведения см. в разделе Токены сеанса .
Примеры автозаполнения (новые)
Используйте locationRestriction и locationBias
Автозаполнение (новое) по умолчанию использует смещение IP-адресов для управления областью поиска. При смещении IP API использует IP-адрес устройства для смещения результатов. При желании вы можете использовать locationRestriction
или locationBias
, но не оба, чтобы указать область для поиска.
Ограничение местоположения определяет область поиска. Результаты за пределами указанной области не возвращаются. В следующем примере используется ограничение местоположения, чтобы ограничить запрос круговым ограничением местоположения радиусом 5000 метров с центром в Сан-Франциско:
Быстрый
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))") } } })
Цель-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. } } }];
Places Swift SDK для iOS (предварительная версия)
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.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))") } } })
Цель-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. } } }];
Places Swift SDK для iOS (предварительная версия)
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. }
Типы использования
Используйте параметр типов, чтобы ограничить результаты запроса определенным типом, указанным в таблице A и таблице B. Вы можете указать массив, содержащий до пяти значений. Если этот параметр опущен, возвращаются все типы.
В следующем примере указывается строка запроса «Футбол» и используется параметр типов, чтобы ограничить результаты заведениями типа "sporting_goods_store"
:
Быстрый
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))") } } })
Цель-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. } } }];
Places Swift SDK для iOS (предварительная версия)
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. }
Использовать происхождение
Когда вы включаете в запрос параметр origin
, указанный как координаты широты и долготы, API включает в ответ расстояние по прямой от источника до пункта назначения. Ответ возвращает расстояние в виде distanceMeters
.
В этом примере начало координат устанавливается в центр Сан-Франциско:
Быстрый
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))") } } })
Цель-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. } } }];
Places Swift SDK для iOS (предварительная версия)
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. }
Атрибуции
Вы можете использовать автозаполнение (новое) даже без карты. Если вы показываете карту, это должна быть карта Google. Когда вы отображаете предложения от службы автозаполнения (новая) без карты, вы должны включить логотип Google, отображаемый в поле поиска/результатах. Дополнительную информацию см. в разделе «Отображение логотипа Google и сведений об авторстве» .
,Служба автозаполнения (новая) — это API iOS, который возвращает предложения мест в ответ на запрос. В запросе укажите текстовую строку поиска и географические границы, контролирующие область поиска.
Служба автозаполнения (новая) может сопоставлять полные слова и подстроки входных данных, распознавая названия мест, адреса и коды плюсов . Таким образом, приложения могут отправлять запросы по мере ввода пользователем текста, чтобы оперативно предлагать места.
Предложения мест — это места, например предприятия, адреса и достопримечательности, на основе указанной входной текстовой строки и области поиска.
Например, вы вызываете API, используя в качестве входных данных строку, содержащую частичный пользовательский ввод «Спаг», при этом область поиска ограничена Нью-Йорком. Затем ответ содержит список предложений мест , соответствующих строке поиска и области поиска, например ресторан «Кафе Спагетти», а также подробную информацию об этом месте.
Возвращенные предложения мест предназначены для представления пользователю, чтобы он мог выбрать желаемое место. Вы можете сделать запрос о месте (новое), чтобы получить дополнительную информацию о любом из возвращенных предложений мест.
Автозаполнение (новые) запросы
Создайте запрос автозаполнения, вызвав метод GMSPlaceClient
. Вы можете передавать параметры в объект GMSAutocompleteRequest
. Ответ предоставляет предложения автозаполнения в объекте GMSAutocompletePlaceSuggestion
.
Требуется ключ API и параметры query
. Вы также можете включить GMSAutocompleteSessionToken
, чтобы связать запросы с сеансом выставления счетов, и GMSAutocompleteFilter
чтобы применить его к результатам.
Дополнительную информацию об обязательных и необязательных параметрах см. в разделе «Параметры» данного документа .
Быстрый
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))") } } })
Цель-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. } } }];
Places Swift SDK для iOS (предварительная версия)
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. }
Автозаполнение (новые) ответы
Автозаполнение возвращает массив, содержащий до пяти экземпляров GMSAutocompleteSuggestion
. Массив содержит:
-
placeID
-
types
: типы, применимые к этому месту. -
distanceMeters
: Расстояние от начала координат. -
attributedFullText
: Полный удобочитаемый текст предложения. -
attributedPrimaryText
: Удобочитаемый основной текст предложения. -
attributedSecondaryText
: удобочитаемый вторичный текст предложения. -
structuredFormat
: конкретное имя и текст, устраняющий неоднозначность, например город или регион.
Обязательные параметры
запрос
Текстовая строка, по которой осуществляется поиск. Укажите полные слова и подстроки, географические названия, адреса и плюсовые коды . Служба автозаполнения (новая) возвращает совпадения кандидатов на основе этой строки и упорядочивает результаты на основе их предполагаемой релевантности.
Дополнительные параметры
типы
Место может иметь только один основной тип из связанных с ним типов Таблица A или Таблица B. Например, основным типом может быть mexican_restaurant
или steak_house
.
По умолчанию API возвращает все места на основе input
параметра, независимо от значения основного типа, связанного с этим местом. Ограничьте результаты определенным основным типом или основными типами, передав параметр types
.
Используйте этот параметр, чтобы указать до пяти значений типа из таблицы A или таблицы B. Для включения в ответ место должно соответствовать одному из указанных значений основного типа.
Запрос отклоняется с ошибкой INVALID_REQUEST
, если:
- Указано более пяти типов.
- Указываются любые нераспознанные типы.
страны
Включайте результаты только из списка указанных регионов, заданного в виде массива, содержащего до 15 двухсимвольных значений ccTLD («домен верхнего уровня») . Если этот параметр опущен, к ответу не применяются никакие ограничения. Например, чтобы ограничить регионы Германией и Францией:
Быстрый
let filter = GMSAutocompleteFilter() filter.countries = ["DE", "FR"]
Цель-C
GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.countries = @[ @"DE", @"FR" ];
Places Swift SDK для iOS (предварительная версия)
let filter = AutocompleteFilter(countries: ["DE", "FR"])
Если вы укажете и locationRestriction
, и countries
, результаты будут расположены в области пересечения двух настроек.
inputOffset
Смещение символов Юникода, отсчитываемое от нуля, указывающее позицию курсора во input
. Положение курсора может влиять на то, какие прогнозы возвращаются. Если пусто, по умолчанию используется длина input
.
предвзятость местоположения или ограничение местоположения
Вы можете указать locationBias
или locationRestriction
, но не оба, чтобы определить область поиска. Подумайте о locationRestriction
как об указании региона, в котором должны находиться результаты, а locationBias
как об указании региона, рядом с которым результаты должны находиться, но могут находиться за его пределами.
locationBias
указывает область для поиска. Это местоположение служит смещением, что означает, что могут быть возвращены результаты вокруг указанного местоположения, включая результаты за пределами указанной области.locationRestriction
указывает область для поиска. Результаты за пределами указанной области не возвращаются.
Укажите область locationBias
или locationRestriction
в виде прямоугольной области просмотра или круга.
Круг определяется центральной точкой и радиусом в метрах. Радиус должен находиться в диапазоне от 0,0 до 50000,0 включительно. Значение по умолчанию — 0,0. Для locationRestriction
необходимо установить радиус больше 0,0. В противном случае запрос не возвращает результатов.
Например:
Быстрый
let center = CLLocationCoordinate2DMake(40.730610, -73.935242) let radius = 1000.0 filter.locationBias = GMSPlaceCircularLocationOption(center, radius)
Цель-C
CLLocationCoordinate2D center = CLLocationCoordinate2DMake(40.730610, -73.935242); radius = 1000.0; GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.locationBias = GMSPlaceCircularLocationOption(center, radius);
Places Swift SDK для iOS (предварительная версия)
let center = CLLocationCoordinate2DMake(40.477398, -74.259087) let bias = CircularCoordinateRegion(center: center, radius: 1000.0) let filter = AutocompleteFilter(coordinateRegionBias: bias)
Прямоугольник — это окно просмотра широты и долготы, представленное в виде двух диагонально противоположных 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
должны быть заполнены, а представленное поле не может быть пустым. Пустое окно просмотра приводит к ошибке.
Например, это окно просмотра полностью охватывает Нью-Йорк:
Быстрый
let high = CLLocationCoordinate2DMake(40.921628, -73.700051) let low = CLLocationCoordinate2DMake(40.477398, -74.259087) let filter = GMSAutocompleteFilter() filter.locationBias = GMSPlaceRectangularLocationOption(high, low)
Цель-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);
Places Swift SDK для iOS (предварительная версия)
let northEast = CLLocationCoordinate2DMake(40.477398, -74.259087) let southWest = CLLocationCoordinate2DMake(40.921628, -73.700051) let filter = AutocompleteFilter(coordinateRegionBias: bias)
источник
Исходная точка, от которой рассчитывается расстояние по прямой до пункта назначения (возвращается как distanceMeters
). Если это значение опущено, расстояние по прямой не будет возвращено. Необходимо указать координаты широты и долготы:
Быстрый
let filter = GMSAutocompleteFilter() filter.origin = CLLocation(latitude: 37.395804, longitude: -122.077023)
Цель-C
GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.origin = [[CLLocation alloc] initWithLatitude:37.395804 longitude: -122.077023];
Places Swift SDK для iOS (предварительная версия)
let filter = AutocompleteFilter(origin: CLLocation(latitude: 37.395804, longitude: -122.077023))
Код региона
Код региона, используемый для форматирования ответа, указанный в виде двухсимвольного значения ccTLD («домен верхнего уровня») . Большинство кодов ccTLD идентичны кодам ISO 3166-1, за некоторыми заметными исключениями. Например, нДВУ Соединенного Королевства — «uk» (.co.uk), а его код ISO 3166-1 — «gb» (технически для организации «Соединенное Королевство Великобритании и Северной Ирландии»).
Если вы укажете неверный код региона, API вернет ошибку INVALID_ARGUMENT
. Параметр может повлиять на результаты в соответствии с действующим законодательством.
сессионный токен
Токены сеанса — это созданные пользователем строки, которые отслеживают вызовы автозаполнения (новые) как «сеансы». Автозаполнение (новое) использует токены сеанса для группировки этапов запроса и выбора пользовательского поиска с автозаполнением в отдельный сеанс для целей выставления счетов. Дополнительные сведения см. в разделе Токены сеанса .
Примеры автозаполнения (новые)
Используйте locationRestriction и locationBias
Автозаполнение (новое) по умолчанию использует смещение IP-адресов для управления областью поиска. При смещении IP API использует IP-адрес устройства для смещения результатов. При желании вы можете использовать locationRestriction
или locationBias
, но не оба, чтобы указать область для поиска.
Ограничение местоположения определяет область поиска. Результаты за пределами указанной области не возвращаются. В следующем примере используется ограничение местоположения, чтобы ограничить запрос круговым ограничением местоположения радиусом 5000 метров с центром в Сан-Франциско:
Быстрый
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))") } } })
Цель-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. } } }];
Places Swift SDK для iOS (предварительная версия)
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.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))") } } })
Цель-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. } } }];
Places Swift SDK для iOS (предварительная версия)
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. }
Типы использования
Используйте параметр типов, чтобы ограничить результаты запроса определенным типом, указанным в таблице A и таблице B. Вы можете указать массив, содержащий до пяти значений. Если этот параметр опущен, возвращаются все типы.
В следующем примере указывается строка запроса «Футбол» и используется параметр типов, чтобы ограничить результаты заведениями типа "sporting_goods_store"
:
Быстрый
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))") } } })
Цель-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. } } }];
Places Swift SDK для iOS (предварительная версия)
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. }
Использовать происхождение
Когда вы включаете в запрос параметр origin
, указанный как координаты широты и долготы, API включает в ответ расстояние по прямой от источника до пункта назначения. Ответ возвращает расстояние в виде distanceMeters
.
В этом примере начало координат устанавливается в центр Сан-Франциско:
Быстрый
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))") } } })
Цель-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. } } }];
Places Swift SDK для iOS (предварительная версия)
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. }
Атрибуции
Вы можете использовать автозаполнение (новое) даже без карты. Если вы показываете карту, это должна быть карта Google. Когда вы отображаете предложения от службы автозаполнения (новая) без карты, вы должны включить логотип Google, отображаемый в поле поиска/результатах. Дополнительную информацию см. в разделе «Отображение логотипа Google и сведений об авторстве» .
,Служба автозаполнения (новая) – это API iOS, который возвращает предложения мест в ответ на запрос. В запросе укажите текстовую строку поиска и географические границы, контролирующие область поиска.
Служба автозаполнения (новая) может сопоставлять полные слова и подстроки входных данных, распознавая названия мест, адреса и плюсовые коды . Таким образом, приложения могут отправлять запросы по мере ввода пользователем текста, чтобы оперативно предлагать места.
Предложения мест — это такие места, как предприятия, адреса и достопримечательности, на основе указанной входной текстовой строки и области поиска.
Например, вы вызываете API, используя в качестве входных данных строку, содержащую частичный пользовательский ввод «Спаг», при этом область поиска ограничена Нью-Йорком. Затем ответ содержит список предложений мест , соответствующих строке поиска и области поиска, например ресторан под названием «Кафе Спагетти», а также подробную информацию об этом месте.
Возвращенные предложения мест предназначены для представления пользователю, чтобы он мог выбрать желаемое место. Вы можете сделать запрос о месте (новое), чтобы получить дополнительную информацию о любом из возвращенных предложений мест.
Автозаполнение (новые) запросы
Создайте запрос автозаполнения, вызвав метод GMSPlaceClient
. Вы можете передавать параметры в объекте GMSAutocompleteRequest
. Ответ предоставляет предложения автозаполнения в объекте GMSAutocompletePlaceSuggestion
.
Требуется ключ API и параметры query
. Вы также можете включить GMSAutocompleteSessionToken
, чтобы связать запросы с сеансом выставления счетов, и GMSAutocompleteFilter
чтобы применить его к результатам.
Дополнительную информацию об обязательных и необязательных параметрах см. в разделе «Параметры» данного документа .
Быстрый
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))") } } })
Цель-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. } } }];
Places Swift SDK для iOS (предварительная версия)
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. }
Автозаполнение (новых) ответов
Автозаполнение возвращает массив, содержащий до пяти экземпляров GMSAutocompleteSuggestion
. Массив содержит:
-
placeID
-
types
: типы, применимые к этому месту. -
distanceMeters
: Расстояние от начала координат. -
attributedFullText
: Полный удобочитаемый текст предложения. -
attributedPrimaryText
: Удобочитаемый основной текст предложения. -
attributedSecondaryText
: Удобочитаемый вторичный текст предложения. -
structuredFormat
: конкретное имя и текст, устраняющий неоднозначность, например город или регион.
Обязательные параметры
запрос
Текстовая строка, на которой можно найти. Укажите полные слова и подстроки, помещения имен, адреса и плюс коды . Автозаполнение (новая) служба возвращает соответствия кандидатов на основе этой строки и заказывает результаты на основе их предполагаемой актуальности.
Дополнительные параметры
типы
Место может иметь только один основной тип из таблицы типов A или таблицы B, связанной с ним. Например, основным типом может быть mexican_restaurant
или steak_house
.
По умолчанию API возвращает все места на основе input
параметра, независимо от значения первичного типа, связанного с этим местом. Ограничьте результаты определенного первичного типа или первичных типов путем передачи параметра types
.
Используйте этот параметр, чтобы указать до пяти значений типа из таблицы A или таблицы B. Место должно соответствовать одному из указанных значений первичного типа, которое будет включено в ответ.
Запрос отклонен ошибкой INVALID_REQUEST
, если:
- Указано более пяти типов.
- Указаны любые непризнанные типы.
страны
Только включают результаты из списка указанных областей, указанных как массив до 15 значений CCTLD («домен верхнего уровня») . В случае опущенного, никаких ограничений не применяется к ответу. Например, чтобы ограничить регионы Германией и Францией:
Быстрый
let filter = GMSAutocompleteFilter() filter.countries = ["DE", "FR"]
Цель-C
GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.countries = @[ @"DE", @"FR" ];
Поместите Swift SDK для iOS (Предварительный просмотр)
let filter = AutocompleteFilter(countries: ["DE", "FR"])
Если вы указываете как locationRestriction
, так и countries
, результаты находятся в области пересечения двух настроек.
inputOffset
Смещение символов Unicode на основе нуля, указывающее положение курсора при input
. Позиция курсора может повлиять на то, что прогнозы возвращаются. Если пуст, по умолчанию по умолчанию длины input
.
местоположение или местоположение
Вы можете указать locationBias
или locationRestriction
, но не оба, чтобы определить область поиска. Подумайте о locationRestriction
как указание области, в которой должны быть результаты, и locationBias
как указание области, которая должна быть близко, но может быть за пределами области.
locationBias
указывает область для поиска. Это место служит смещением, что означает, что могут быть возвращены результаты вокруг указанного места, включая результаты за пределами указанной области.locationRestriction
Указывает область для поиска. Результаты за пределами указанной области не возвращаются.
Укажите область locationBias
или locationRestriction
в виде прямоугольного просмотра или в качестве круга.
Круг определяется центральной точкой и радиусом в метрах. Радиус должен быть от 0,0 до 50000,0, включительно. Значение по умолчанию составляет 0,0. Для locationRestriction
вы должны установить радиус до значения, превышающего 0,0. В противном случае запрос не возвращает результатов.
Например:
Быстрый
let center = CLLocationCoordinate2DMake(40.730610, -73.935242) let radius = 1000.0 filter.locationBias = GMSPlaceCircularLocationOption(center, radius)
Цель-C
CLLocationCoordinate2D center = CLLocationCoordinate2DMake(40.730610, -73.935242); radius = 1000.0; GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.locationBias = GMSPlaceCircularLocationOption(center, radius);
Поместите Swift SDK для iOS (Предварительный просмотр)
let center = CLLocationCoordinate2DMake(40.477398, -74.259087) let bias = CircularCoordinateRegion(center: center, radius: 1000.0) let filter = AutocompleteFilter(coordinateRegionBias: bias)
Прямоугольник представляет собой широту длительного просмотра, представленный как два диагонали напротив low
и high
точек. Viewport считается закрытой областью, что означает, что он включает в себя свою границу. Границы широты должны варьироваться от -90 до 90 градусов включено, а границы долготы должны варьироваться от -180 до 180 градусов включено:
- Если
low
=high
, топорт Views состоит из этой единственной точки. - Если
low.longitude
>high.longitude
. - Если
low.longitude
= -180 градусов иhigh.longitude
. - Если
low.longitude
= 180 градусов иhigh.longitude
Longity = -180 градусов, диапазон долготы пуст.
Как low
, так и high
должен быть заполнен, а представленная коробка не может быть пустой. Пустой просмотр приводит к ошибке.
Например, этот вид VIELE полностью прилагает Нью -Йорк:
Быстрый
let high = CLLocationCoordinate2DMake(40.921628, -73.700051) let low = CLLocationCoordinate2DMake(40.477398, -74.259087) let filter = GMSAutocompleteFilter() filter.locationBias = GMSPlaceRectangularLocationOption(high, low)
Цель-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);
Поместите Swift SDK для iOS (Предварительный просмотр)
let northEast = CLLocationCoordinate2DMake(40.477398, -74.259087) let southWest = CLLocationCoordinate2DMake(40.921628, -73.700051) let filter = AutocompleteFilter(coordinateRegionBias: bias)
источник
Точка происхождения, из которой можно рассчитать прямолинейное расстояние до пункта назначения (возвращается как distanceMeters
). Если это значение опущено, прямое расстояние не будет возвращено. Должен быть указан как координаты широты и долготы:
Быстрый
let filter = GMSAutocompleteFilter() filter.origin = CLLocation(latitude: 37.395804, longitude: -122.077023)
Цель-C
GMSAutocompleteFilter *filter = [[GMSAutocompleteFilter alloc] init]; filter.origin = [[CLLocation alloc] initWithLatitude:37.395804 longitude: -122.077023];
Поместите Swift SDK для iOS (Предварительный просмотр)
let filter = AutocompleteFilter(origin: CLLocation(latitude: 37.395804, longitude: -122.077023))
регион код
Код региона, используемый для форматирования ответа, указанный как CCTLD («Домен верхнего уровня»), два-характер. Большинство кодов CCTLD идентичны кодам ISO 3166-1, за некоторыми заметными исключениями. Например, CCTLD в Великобритании-«Великобритания» (.co.uk), в то время как его ISO 3166-1-«ГБ» (технически для сущности «Соединенное Королевство Великобритании и Северная Ирландия»).
Если вы указываете неверный код региона, API возвращает ошибку INVALID_ARGUMENT
. Параметр может повлиять на результаты на основе применимого закона.
SessionToken
Токены сеансов-это сгенерированные пользователем строки, которые отслеживают автоматические (новые) вызовы как «сеансы». AutoComplete (New) использует токены сеансов для сгруппирования этапов запросов и выбора пользователя, автозаполненного поиском в дискретный сеанс для выставления счетов. Для получения дополнительной информации см. Сессионные токены .
Автозаполнение (новые) примеры
Используйте местоположение и местоположение
AutoComplete (New) использует IP -смещение по умолчанию для управления областью поиска. С помощью IP -смещения API использует IP -адрес устройства для смещения результатов. Вы можете при желании использовать locationRestriction
или locationBias
, но не оба, чтобы указать область для поиска.
Ограничение местоположения указывает область для поиска. Результаты за пределами указанной области не возвращаются. В следующем примере используется ограничение местоположения, чтобы ограничить запрос на ограничение кругового местоположения с радиусом 5000 метров, сосредоточенным на Сан-Франциско:
Быстрый
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))") } } })
Цель-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 для iOS (Предварительный просмотр)
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.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))") } } })
Цель-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. } } }];
Поместите Swift SDK для iOS (Предварительный просмотр)
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. }
Используйте типы
Используйте параметр TIPES, чтобы ограничить результаты запроса, чтобы быть определенным типом, как указано в таблице A и в таблице B. Вы можете указать массив до пяти значений. Если опущены, все типы возвращаются.
В следующем примере указывается строка запроса «футбол» и использует параметр типов, чтобы ограничить результаты для учреждений типа "sporting_goods_store"
:
Быстрый
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))") } } })
Цель-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. } } }];
Поместите Swift SDK для iOS (Предварительный просмотр)
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. }
Использовать происхождение
Когда вы включаете параметр origin
в запрос, указанный как широта и координаты долготы, API включает прямолинейное расстояние от начала до начала назначения в ответе. Ответ возвращает расстояние в качестве distanceMeters
.
Этот пример устанавливает происхождение в центр Сан -Франциско:
Быстрый
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))") } } })
Цель-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 для iOS (Предварительный просмотр)
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. }
Атрибуции
Вы можете использовать автозаполнение (новое) даже без карты. Если вы показываете карту, это должна быть карта Google. Когда вы отображаете предложения из службы AutoComplete (New) без карты, вы должны включить логотип Google, отображаемый в соответствии с полем/результатами поиска. Для получения дополнительной информации см. Отображение логотипа Google и атрибутов .