Автозаполнение запроса (устаревшая версия)

Разработчики из Европейской экономической зоны (ЕЭЗ)

Функция автозаполнения запросов (устаревшая версия) позволяет получать подсказки для текстового географического поиска, возвращая варианты запросов по мере ввода текста.

Запросы с автозаполнением (устаревшие)

Функция автозаполнения запросов (устаревшая версия) является частью 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 метров

Примеры автозаполнения запросов (устаревшая версия)

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 .

необязательный нить

Если сервис возвращает код состояния, отличный от OK , в объекте ответа может присутствовать дополнительное поле error_message . Это поле содержит более подробную информацию о причинах присвоения кода состояния. Это поле возвращается не всегда, и его содержимое может изменяться.

необязательный Массив<строка>

Когда сервис возвращает дополнительную информацию о спецификации запроса, в объекте ответа может появиться дополнительное поле info_messages . Это поле возвращается только для успешно выполненных запросов. Оно может возвращаться не всегда, и его содержимое может изменяться.

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

Поле Необходимый Тип Описание
необходимый нить

Содержит удобочитаемое название возвращаемого результата. Для результатов, establishment , это обычно название компании. Этот контент предназначен для чтения в неизмененном виде. Не следует программно обрабатывать отформатированный адрес.

необходимый Array< PlaceAutocompleteMatchedSubstring >

Список подстрок, описывающих местоположение введенного термина в тексте результата прогнозирования, чтобы при желании этот термин можно было выделить.

Дополнительную информацию см. в разделе PlaceAutocompleteMatchedSubstring .

необходимый МестоАвтозаполнениеСтруктурированныйФормат

Предоставляет предварительно отформатированный текст, который может отображаться в результатах автозаполнения. Этот контент предназначен для чтения в неизмененном виде. Не следует программно обрабатывать отформатированный адрес.

Дополнительную информацию см. в разделе PlaceAutocompleteStructuredFormat .

необходимый Массив< PlaceAutocompleteTerm >

Содержит массив терминов, идентифицирующих каждый раздел возвращаемого описания (раздел описания обычно заканчивается запятой). Каждая запись в массиве имеет поле value , содержащее текст термина, и поле offset , определяющее начальную позицию этого термина в описании, измеряемую в символах Юникода.

Дополнительную информацию см. в разделе PlaceAutocompleteTerm .

необязательный целое число

Расстояние по прямой в метрах от начала координат. Это поле возвращается только для запросов, отправленных с указанием origin .

необязательный нить

Текстовый идентификатор, однозначно определяющий местоположение. Для получения информации о месте передайте этот идентификатор в поле placeId запроса к Places API. Дополнительную информацию об идентификаторах мест см. в обзоре идентификаторов мест .

необязательный нить

См. place_id.

необязательный Массив<строка>

Содержит массив типов, относящихся к данному месту. Например: [ "political", "locality" ] или [ "establishment", "geocode", "beauty_salon" ] . Массив может содержать несколько значений. Подробнее о типах мест можно узнать здесь.

PlaceAutocompleteMatchedSubstring

Поле Необходимый Тип Описание
необходимый число

Длина найденной подстроки в тексте результата прогнозирования.

необходимый число

Начальное местоположение найденной подстроки в тексте результата прогнозирования.

МестоАвтозаполнениеСтруктурированныйФормат

Поле Необходимый Тип Описание
необходимый нить

Содержит основной текст предсказания, обычно название места.

необходимый Array< PlaceAutocompleteMatchedSubstring >

Содержит массив со значением offset и length . Эти параметры описывают местоположение введенного термина в тексте результата прогнозирования, что позволяет при желании выделить этот термин.

Дополнительную информацию см. в разделе PlaceAutocompleteMatchedSubstring .

необязательный нить

Содержит дополнительный текст предсказания, обычно указывающий местоположение.

необязательный Array< PlaceAutocompleteMatchedSubstring >

Содержит массив со значением offset и length . Эти параметры описывают местоположение введенного термина в тексте результата прогнозирования, что позволяет при желании выделить этот термин.

Дополнительную информацию см. в разделе PlaceAutocompleteMatchedSubstring .

PlaceAutocompleteTerm

Поле Необходимый Тип Описание
необходимый число

Определяет начальную позицию данного термина в описании, измеряемую в символах Юникода.

необходимый нить

Текст семестра.