Функция автозаполнения запросов (устаревшая версия) позволяет получать подсказки для текстового географического поиска, возвращая варианты запросов по мере ввода текста.
Запросы с автозаполнением (устаревшие)
Функция автозаполнения запросов (устаревшая версия) является частью API Places (устаревшая версия) и использует тот же ключ API и квоту, что и API Places (устаревшая версия).
Функция автозаполнения запросов (устаревшая версия) позволяет добавлять в приложение подсказки по географическим запросам в режиме реального времени. Вместо поиска конкретного местоположения пользователь может ввести категориальный запрос, например, «пицца рядом с Нью-Йорком», и сервис ответит списком предлагаемых запросов, соответствующих строке. Поскольку функция автозаполнения запросов (устаревшая версия) может сопоставлять как полные слова, так и подстроки, приложения могут отправлять запросы по мере ввода пользователем текста, предоставляя подсказки в режиме реального времени.
Запрос с автозаполнением (устаревшая версия) представляет собой HTTP-URL следующего вида:
https://maps.googleapis.com/maps/api/place/queryautocomplete/output?parameters
где output может быть либо json , либо xml .
Для запуска запроса с автозаполнением (устаревшая версия) необходимы определенные параметры. Как это принято в URL-адресах, все параметры разделяются символом амперсанда ( & ). Список параметров и их возможных значений приведен ниже.
Необходимые параметры
вход
Текстовая строка, по которой будет производиться поиск. Сервис автозаполнения Place вернет потенциальные совпадения на основе этой строки и упорядочит результаты в зависимости от их предполагаемой релевантности.
Дополнительные параметры
язык
Язык, на котором будут отображаться результаты.
- См. список поддерживаемых языков . Google часто обновляет список поддерживаемых языков, поэтому этот список может быть неполным.
- Если
languageне указан, API пытается использовать предпочтительный язык, указанный в заголовкеAccept-Language. - API делает все возможное, чтобы предоставить уличный адрес, понятный как пользователю, так и местным жителям. Для достижения этой цели он возвращает уличные адреса на местном языке, при необходимости транслитерированные в письменность, понятную пользователю, с учетом предпочтительного языка. Все остальные адреса возвращаются на предпочтительном языке. Все компоненты адреса возвращаются на одном языке, который выбирается из первого компонента.
- Если имя недоступно на предпочитаемом языке, API использует наиболее близкое совпадение.
- Предпочитаемый язык оказывает небольшое влияние на набор результатов, которые API выбирает для возврата, и на порядок их возврата. Геокодер по-разному интерпретирует сокращения в зависимости от языка, например, сокращения для типов улиц или синонимы, которые могут быть допустимы в одном языке, но не в другом. Например, utca и tér являются синонимами слова «улица» на венгерском языке.
расположение
Определяет точку в виде координат
latitude,longitude, вокруг которой осуществляется поиск. Сервис «Места» использует местоположение для смещения поиска таким образом, чтобы результаты отображались преимущественно в области, определеннойlocationиradius; результаты за пределами определенной области также могут отображаться.Параметрlocationможет быть переопределен, еслиqueryсодержит явное указание местоположения, например,Market in Barcelona. Использование кавычек вокруг запроса также может повлиять на вес, присваиваемыйlocationиradius.компенсировать
Позиция последнего символа во входном запросе, которую сервис использует для сопоставления прогнозов. Например, если входной запрос —
Google, а смещение равно 3, сервис будет искать совпадение сGoo. Строка, определяемая смещением, сопоставляется только с первым словом во входном запросе. Например, если входной запрос —Google abc, а смещение равно 3, сервис попытается найти совпадение сGoo abc. Если смещение не указано, сервис будет использовать весь запрос. Смещение обычно следует устанавливать равным позиции курсора в тексте.радиус
Определяет расстояние (в метрах), в пределах которого следует отображать результаты поиска мест. Вы можете сместить результаты в сторону указанного круга, передав параметры
locationиradius. Это укажет службе Places отдавать предпочтение отображению результатов внутри этого круга; результаты за пределами определенной области также могут отображаться.Радиус будет автоматически ограничен максимальным значением в зависимости от типа поиска и других параметров.
- Автозаполнение: 50 000 метров
- Поиск поблизости:
- с
keywordилиname: 50 000 метров - без
keywordилиname- До 50 000 метров, динамически корректируется в зависимости от плотности площади, независимо от параметра
rankby. - При использовании параметра
rankby=distanceпараметр radius не будет принят, что приведет к ошибкеINVALID_REQUEST.
- До 50 000 метров, динамически корректируется в зависимости от плотности площади, независимо от параметра
- с
- Автозаполнение запроса: 50 000 метров
- Поиск текста: 50 000 метров
Примеры автозаполнения запросов (устаревшая версия)
URL
https://maps.googleapis.com/maps/api/place/queryautocomplete/json ?input=pizza%20near%20par &key=YOUR_API_KEY
локон
curl -L -X GET 'https://maps.googleapis.com/maps/api/place/queryautocomplete/json?input=pizza%20near%20par&key=YOUR_API_KEY'Запрос "Пиццерия рядом с Par", результаты на французском языке:
URL
https://maps.googleapis.com/maps/api/place/queryautocomplete/json ?input=pizza%20near%20par &language=fr &key=YOUR_API_KEY
локон
curl -L -X GET 'https://maps.googleapis.com/maps/api/place/queryautocomplete/json?input=pizza%20near%20par&language=fr&key=YOUR_API_KEY'Обратите внимание, что в приведенных примерах вам потребуется заменить ключ API на свой собственный.
Ответ функции автозаполнения запроса (устаревшая версия)
Ответы на запросы с автозаполнением (устаревшая версия) возвращаются в формате, указанном флагом output в пути URL-запроса. Ниже представлены результаты для запроса со следующими параметрами:
URL
https://maps.googleapis.com/maps/api/place/queryautocomplete/json ?input=pizza%20near%20par &key=YOUR_API_KEY
локон
curl -L -X GET 'https://maps.googleapis.com/maps/api/place/queryautocomplete/json?input=pizza%20near%20par&key=YOUR_API_KEY'JSON
{ "predictions": [ { "description": "pizza near Paris, France", "matched_substrings": [{ "length": 5, "offset": 0 }, { "length": 3, "offset": 11 }], "structured_formatting": { "main_text": "pizza", "main_text_matched_substrings": [{ "length": 5, "offset": 0 }], "secondary_text": "near Paris, France", "secondary_text_matched_substrings": [{ "length": 3, "offset": 5 }], }, "terms": [ { "offset": 0, "value": "pizza" }, { "offset": 6, "value": "near" }, { "offset": 11, "value": "Paris" }, { "offset": 18, "value": "France" }, ], }, { "description": "pizza near Pari Chowk, NRI City, Omega II, Noida, Uttar Pradesh, India", "matched_substrings": [{ "length": 5, "offset": 0 }, { "length": 3, "offset": 11 }], "structured_formatting": { "main_text": "pizza", "main_text_matched_substrings": [{ "length": 5, "offset": 0 }], "secondary_text": "near Pari Chowk, NRI City, Omega II, Noida, Uttar Pradesh, India", "secondary_text_matched_substrings": [{ "length": 3, "offset": 5 }], }, "terms": [ { "offset": 0, "value": "pizza" }, { "offset": 6, "value": "near" }, { "offset": 11, "value": "Pari Chowk" }, { "offset": 23, "value": "NRI City" }, { "offset": 33, "value": "Omega II" }, { "offset": 43, "value": "Noida" }, { "offset": 50, "value": "Uttar Pradesh" }, { "offset": 65, "value": "India" }, ], }, { "description": "pizza near Disneyland Park, Disneyland Drive, Anaheim, CA, USA", "matched_substrings": [{ "length": 5, "offset": 0 }, { "length": 3, "offset": 22 }], "structured_formatting": { "main_text": "pizza", "main_text_matched_substrings": [{ "length": 5, "offset": 0 }], "secondary_text": "near Disneyland Park, Disneyland Drive, Anaheim, CA, USA", "secondary_text_matched_substrings": [{ "length": 3, "offset": 16 }], }, "terms": [ { "offset": 0, "value": "pizza" }, { "offset": 6, "value": "near" }, { "offset": 11, "value": "Disneyland Park" }, { "offset": 28, "value": "Disneyland Drive" }, { "offset": 46, "value": "Anaheim" }, { "offset": 55, "value": "CA" }, { "offset": 59, "value": "USA" }, ], }, { "description": "pizza near Cathédrale Notre-Dame de Paris, Parvis Notre-Dame - place Jean-Paul-II, Paris, France", "matched_substrings": [{ "length": 5, "offset": 0 }, { "length": 3, "offset": 36 }], "structured_formatting": { "main_text": "pizza", "main_text_matched_substrings": [{ "length": 5, "offset": 0 }], "secondary_text": "near Cathédrale Notre-Dame de Paris, Parvis Notre-Dame - place Jean-Paul-II, Paris, France", "secondary_text_matched_substrings": [{ "length": 3, "offset": 30 }], }, "terms": [ { "offset": 0, "value": "pizza" }, { "offset": 6, "value": "near" }, { "offset": 11, "value": "Cathédrale Notre-Dame de Paris" }, { "offset": 43, "value": "Parvis Notre-Dame - place Jean-Paul-II" }, { "offset": 83, "value": "Paris" }, { "offset": 90, "value": "France" }, ], }, { "description": "pizza near Paris Beauvais Airport, Route de l'Aéroport, Tillé, France", "matched_substrings": [{ "length": 5, "offset": 0 }, { "length": 3, "offset": 11 }], "structured_formatting": { "main_text": "pizza", "main_text_matched_substrings": [{ "length": 5, "offset": 0 }], "secondary_text": "near Paris Beauvais Airport, Route de l'Aéroport, Tillé, France", "secondary_text_matched_substrings": [{ "length": 3, "offset": 5 }], }, "terms": [ { "offset": 0, "value": "pizza" }, { "offset": 6, "value": "near" }, { "offset": 11, "value": "Paris Beauvais Airport" }, { "offset": 35, "value": "Route de l'Aéroport" }, { "offset": 56, "value": "Tillé" }, { "offset": 63, "value": "France" }, ], }, ], "status": "OK", }
XML
<AutocompletionResponse> <status>OK</status> <prediction> <description>pizza near Paris, France</description> <term> <value>pizza</value> <offset>0</offset> </term> <term> <value>near</value> <offset>6</offset> </term> <term> <value>Paris</value> <offset>11</offset> </term> <term> <value>France</value> <offset>18</offset> </term> <matched_substring> <offset>0</offset> <length>5</length> </matched_substring> <matched_substring> <offset>11</offset> <length>3</length> </matched_substring> <structured_formatting> <description>pizza</description> <subdescription>near Paris, France</subdescription> <description_matched_substring> <offset>0</offset> <length>5</length> </description_matched_substring> <subdescription_matched_substring> <offset>5</offset> <length>3</length> </subdescription_matched_substring> </structured_formatting> </prediction> <prediction> <description>pizza near Pari Chowk, NRI City, Omega II, Noida, Uttar Pradesh, India</description> <term> <value>pizza</value> <offset>0</offset> </term> <term> <value>near</value> <offset>6</offset> </term> <term> <value>Pari Chowk</value> <offset>11</offset> </term> <term> <value>NRI City</value> <offset>23</offset> </term> <term> <value>Omega II</value> <offset>33</offset> </term> <term> <value>Noida</value> <offset>43</offset> </term> <term> <value>Uttar Pradesh</value> <offset>50</offset> </term> <term> <value>India</value> <offset>65</offset> </term> <matched_substring> <offset>0</offset> <length>5</length> </matched_substring> <matched_substring> <offset>11</offset> <length>3</length> </matched_substring> <structured_formatting> <description>pizza</description> <subdescription>near Pari Chowk, NRI City, Omega II, Noida, Uttar Pradesh, India</subdescription> <description_matched_substring> <offset>0</offset> <length>5</length> </description_matched_substring> <subdescription_matched_substring> <offset>5</offset> <length>3</length> </subdescription_matched_substring> </structured_formatting> </prediction> <prediction> <description>pizza near Disneyland Park, Disneyland Drive, Anaheim, CA, USA</description> <term> <value>pizza</value> <offset>0</offset> </term> <term> <value>near</value> <offset>6</offset> </term> <term> <value>Disneyland Park</value> <offset>11</offset> </term> <term> <value>Disneyland Drive</value> <offset>28</offset> </term> <term> <value>Anaheim</value> <offset>46</offset> </term> <term> <value>CA</value> <offset>55</offset> </term> <term> <value>USA</value> <offset>59</offset> </term> <matched_substring> <offset>0</offset> <length>5</length> </matched_substring> <matched_substring> <offset>22</offset> <length>3</length> </matched_substring> <structured_formatting> <description>pizza</description> <subdescription>near Disneyland Park, Disneyland Drive, Anaheim, CA, USA</subdescription> <description_matched_substring> <offset>0</offset> <length>5</length> </description_matched_substring> <subdescription_matched_substring> <offset>16</offset> <length>3</length> </subdescription_matched_substring> </structured_formatting> </prediction> <prediction> <description>pizza near Cathédrale Notre-Dame de Paris, Parvis Notre-Dame - place Jean-Paul-II, Paris, France</description> <term> <value>pizza</value> <offset>0</offset> </term> <term> <value>near</value> <offset>6</offset> </term> <term> <value>Cathédrale Notre-Dame de Paris</value> <offset>11</offset> </term> <term> <value>Parvis Notre-Dame - place Jean-Paul-II</value> <offset>43</offset> </term> <term> <value>Paris</value> <offset>83</offset> </term> <term> <value>France</value> <offset>90</offset> </term> <matched_substring> <offset>0</offset> <length>5</length> </matched_substring> <matched_substring> <offset>36</offset> <length>3</length> </matched_substring> <structured_formatting> <description>pizza</description> <subdescription>near Cathédrale Notre-Dame de Paris, Parvis Notre-Dame - place Jean-Paul-II, Paris, France</subdescription> <description_matched_substring> <offset>0</offset> <length>5</length> </description_matched_substring> <subdescription_matched_substring> <offset>30</offset> <length>3</length> </subdescription_matched_substring> </structured_formatting> </prediction> <prediction> <description>pizza near Paris Beauvais Airport, Route de l'Aéroport, Tillé, France</description> <term> <value>pizza</value> <offset>0</offset> </term> <term> <value>near</value> <offset>6</offset> </term> <term> <value>Paris Beauvais Airport</value> <offset>11</offset> </term> <term> <value>Route de l'Aéroport</value> <offset>35</offset> </term> <term> <value>Tillé</value> <offset>56</offset> </term> <term> <value>France</value> <offset>63</offset> </term> <matched_substring> <offset>0</offset> <length>5</length> </matched_substring> <matched_substring> <offset>11</offset> <length>3</length> </matched_substring> <structured_formatting> <description>pizza</description> <subdescription>near Paris Beauvais Airport, Route de l'Aéroport, Tillé, France</subdescription> <description_matched_substring> <offset>0</offset> <length>5</length> </description_matched_substring> <subdescription_matched_substring> <offset>5</offset> <length>3</length> </subdescription_matched_substring> </structured_formatting> </prediction> </AutocompletionResponse>
Когда служба Places возвращает результаты поиска в формате JSON, она помещает их в массив predictions . Даже если служба не возвращает результатов (например, если location удаленное), она все равно возвращает пустой массив predictions . XML-ответы состоят из нуля или более элементов <prediction> .
PlacesQueryAutocompleteResponse
| Поле | Необходимый | Тип | Описание |
|---|---|---|---|
| необходимый | Array< PlaceAutocompletePrediction > | Содержит массив прогнозов. Дополнительную информацию см. в разделе PlaceAutocompletePrediction . |
| необходимый | PlacesAutocompleteStatus | Содержит информацию о статусе запроса и может включать отладочные данные, которые помогут вам выяснить причину сбоя запроса. Дополнительную информацию см. в разделе PlacesAutocompleteStatus . |
| необязательный | нить | Если сервис возвращает код состояния, отличный от |
| необязательный | Массив<строка> | Когда сервис возвращает дополнительную информацию о спецификации запроса, в объекте ответа может появиться дополнительное поле |
PlacesAutocompleteStatus
Коды состояния, возвращаемые службой.
-
OKозначает, что запрос к API был успешно выполнен. -
ZERO_RESULTSозначает, что поиск был успешным, но не дал результатов. Это может произойти, если поиск вышел за пределы удаленной области. -
INVALID_REQUESTуказывает на то, что API-запрос был некорректно сформирован, как правило, из-за отсутствияinputпараметра. -
OVER_QUERY_LIMITуказывает на любой из следующих параметров:- Вы превысили лимиты QPS.
- В вашем аккаунте не включена функция выставления счетов.
- Ежемесячный лимит в 200 долларов, или самостоятельно установленный лимит использования, превышен.
- Предоставленный способ оплаты больше недействителен (например, срок действия кредитной карты истек).
-
REQUEST_DENIEDуказывает на то, что ваш запрос был отклонен, как правило, по следующей причине:- В запросе отсутствует ключ API.
-
keyпараметр недействителен.
-
UNKNOWN_ERRORуказывает на неизвестную ошибку.
Когда служба Places возвращает результаты поиска в формате JSON, она помещает их в массив predictions . Даже если служба не возвращает результатов (например, если location удаленное), она все равно возвращает пустой массив predictions . XML-ответы состоят из нуля или более элементов <prediction> .
PlaceAutocompletePrediction
| Поле | Необходимый | Тип | Описание |
|---|---|---|---|
| необходимый | нить | Содержит удобочитаемое название возвращаемого результата. Для результатов, |
| необходимый | Array< PlaceAutocompleteMatchedSubstring > | Список подстрок, описывающих местоположение введенного термина в тексте результата прогнозирования, чтобы при желании этот термин можно было выделить. Дополнительную информацию см. в разделе PlaceAutocompleteMatchedSubstring . |
| необходимый | МестоАвтозаполнениеСтруктурированныйФормат | Предоставляет предварительно отформатированный текст, который может отображаться в результатах автозаполнения. Этот контент предназначен для чтения в неизмененном виде. Не следует программно обрабатывать отформатированный адрес. Дополнительную информацию см. в разделе PlaceAutocompleteStructuredFormat . |
| необходимый | Массив< PlaceAutocompleteTerm > | Содержит массив терминов, идентифицирующих каждый раздел возвращаемого описания (раздел описания обычно заканчивается запятой). Каждая запись в массиве имеет поле Дополнительную информацию см. в разделе PlaceAutocompleteTerm . |
| необязательный | целое число | Расстояние по прямой в метрах от начала координат. Это поле возвращается только для запросов, отправленных с указанием |
| необязательный | нить | Текстовый идентификатор, однозначно определяющий местоположение. Для получения информации о месте передайте этот идентификатор в поле placeId запроса к Places API. Дополнительную информацию об идентификаторах мест см. в обзоре идентификаторов мест . |
| необязательный | нить | См. place_id. |
| необязательный | Массив<строка> | Содержит массив типов, относящихся к данному месту. Например: |
PlaceAutocompleteMatchedSubstring
| Поле | Необходимый | Тип | Описание |
|---|---|---|---|
| необходимый | число | Длина найденной подстроки в тексте результата прогнозирования. |
| необходимый | число | Начальное местоположение найденной подстроки в тексте результата прогнозирования. |
МестоАвтозаполнениеСтруктурированныйФормат
| Поле | Необходимый | Тип | Описание |
|---|---|---|---|
| необходимый | нить | Содержит основной текст предсказания, обычно название места. |
| необходимый | Array< PlaceAutocompleteMatchedSubstring > | Содержит массив со значением Дополнительную информацию см. в разделе PlaceAutocompleteMatchedSubstring . |
| необязательный | нить | Содержит дополнительный текст предсказания, обычно указывающий местоположение. |
| необязательный | Array< PlaceAutocompleteMatchedSubstring > | Содержит массив со значением Дополнительную информацию см. в разделе PlaceAutocompleteMatchedSubstring . |
PlaceAutocompleteTerm
| Поле | Необходимый | Тип | Описание |
|---|---|---|---|
| необходимый | число | Определяет начальную позицию данного термина в описании, измеряемую в символах Юникода. |
| необходимый | нить | Текст семестра. |