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

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

Place Autocomplete (Legacy) – это веб-сервис, который возвращает подсказки мест в ответ на HTTP-запрос. В запросе указывается текстовая строка поиска и, при необходимости, географические границы. Этот сервис позволяет реализовать функцию автозаполнения для текстового поиска географических объектов, предлагая пользователю по мере ввода запроса варианты мест, например компаний, адресов и достопримечательностей.

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

Автозаполнение мест (устаревшее) – это часть Places API, которая использует тот же ключ API и квоты.

Автозаполнение мест (Legacy) может обрабатывать полные слова и их части, предлагая подходящие названия мест, адреса и коды Plus Code. Приложения могут передавать запросы по мере их ввода и сразу же предлагать похожие варианты.

Коды Plus Code должны быть правильно отформатированы. Это означает, что знак плюса нужно экранировать в URL как %2B, а пробелы – как %20.

  • Глобальный код содержит четыре знака кода зоны и не менее шести знаков местного кода. Например, глобальный код экранирования URL 849VCWC8+R9 – это 849VCWC8%2BR9.
  • Составной код содержит не менее шести знаков местного кода с точными данными о местоположении. Например, экранированный URL-адрес для кода CWC8+R9 Mountain View, CA, USA будет выглядеть так: CWC8%2BR9%20Mountain%20View%20CA%20USA.

Возвращенные подсказки предназначены для показа пользователю, чтобы помочь ему выбрать нужное место. Чтобы получить подробную информацию о любом из них, можно отправить запрос Place Details (Legacy).

Запрос Place Autocomplete (Legacy) – это URL HTTP следующего формата:

https://maps.googleapis.com/maps/api/place/autocomplete/output?parameters

где output может принимать одно из следующих значений:

  • json (рекомендуется) – вывод в формате JSON (JavaScript Object Notation).
  • xml – вывод в формате XML.

Для отправки запроса автозаполнения мест (устаревшая версия) требуются определенные параметры. Параметры разделяются амперсандами (&) в соответствии со стандартом написания URL. Список параметров и их возможных значений приведен ниже.

Обязательные параметры

ввод

Текстовая строка, по которой выполняется поиск. На основе этой строки сервис автозаполнения мест возвращает список подходящих мест, упорядоченных по их предполагаемой релевантности.

Необязательные параметры

компоненты

Группа мест, которыми вы хотите ограничить результаты. С помощью компонентов можно фильтровать результаты, чтобы в них входили места из не более чем пяти стран. Страны нужно указывать в виде двухбуквенного кода по стандарту ISO 3166-1 Alpha-2. Например, components=country:fr ограничит результаты местами во Франции. Чтобы указать несколько стран, передайте несколько фильтров country:XX, разделенных вертикальной чертой |. Например, components=country:us|country:pr|country:vi|country:gu|country:mp ограничит результаты местами в США и на их неинкорпорированных организованных территориях.

Примечание. Если использование кода страны приводит к непредвиденным результатам, убедитесь, что код включает нужные страны, зависимые территории и особые географические области. Коды можно найти в статье Википедии со списком кодов стран по ISO 3166 и на онлайн-платформе ISO.

language

Язык, на котором будут возвращены результаты.

  • Вы можете ознакомиться со списком поддерживаемых языков. Google часто обновляет список поддерживаемых языков, поэтому он может быть неполным.
  • Если параметр language не указан, API пытается использовать язык, заданный в заголовке Accept-Language.
  • API пытается предоставить почтовый адрес, который будет понятен как пользователю, так и местным жителям. Для этого он возвращает почтовые адреса на местном языке, при необходимости транслитерируя их в систему письма, понятную пользователю, с учетом предпочитаемого языка. Все остальные адреса возвращаются на предпочитаемом языке. Все компоненты адреса возвращаются на одном языке, который выбирается по первому компоненту.
  • Если название на выбранном языке недоступно, API использует наиболее близкое совпадение.
  • Предпочтительный язык немного влияет на набор результатов, возвращаемых API, и на порядок их возврата. Геокодер по-разному интерпретирует сокращения в зависимости от языка. Например, это касается сокращений для типов улиц или синонимов, которые могут быть допустимы в одном языке, но не в другом. Например, utca и tér – это синонимы слова "улица" на венгерском языке.

местоположение

Точка, вокруг которой нужно получить информацию о местах. Необходимо указать значение latitude,longitude. При указании местоположения также необходимо задать параметр radius. Если параметр radius не указан, то параметр location игнорируется.

При использовании Text Search API параметр `location` может быть переопределен, если в параметре `query` явно указано местоположение, например `Market in Barcelona`.

locationbias

Отдавать предпочтение результатам в указанной области, задав радиус и координаты широты и долготы или две пары координат широты и долготы, представляющие точки прямоугольника. Если этот параметр не указан, API по умолчанию использует смещение по IP-адресу.

  • IP bias: указывает API использовать привязку к IP-адресу. Передайте строку ipbias (у этого варианта нет дополнительных параметров).
  • Круг: строка, указывающая радиус в метрах, а также широту и долготу в десятичных градусах. Используйте следующий формат: circle:radius@lat,lng.
  • Прямоугольная область. Строка, содержащая две пары координат широты и долготы в десятичных градусах, которые представляют юго-западную и северо-восточную точки прямоугольника. Используйте следующий формат:rectangle:south,west|north,east. Обратите внимание, что значения для востока и запада находятся в диапазоне от -180 до 180, а для севера и юга – от -90 до 90.

locationrestriction

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

  • Круг: строка, указывающая радиус в метрах, а также широту и долготу в десятичных градусах. Используйте следующий формат: circle:radius@lat,lng.
  • Прямоугольная область. Строка, содержащая две пары координат широты и долготы в десятичных градусах, которые представляют юго-западную и северо-восточную точки прямоугольника. Используйте следующий формат:rectangle:south,west|north,east. Обратите внимание, что значения для востока и запада находятся в диапазоне от -180 до 180, а для севера и юга – от -90 до 90.

вычесть

Позиция последнего символа в поисковом запросе, который сервис использует для подбора подсказок. Например, если входные данные – Google, а смещение – 3, то сервис будет искать совпадения с Goo. Строка, определяемая смещением, сопоставляется только с первым словом во входном термине. Например, если входной термин – Google abc, а смещение – 3, сервис попытается найти совпадение с Goo abc. Если смещение не указано, сервис будет использовать весь запрос. Обычно смещение должно быть установлено в положение текстового курсора.

происхождение

Начальная точка, от которой рассчитывается расстояние по прямой до пункта назначения (возвращается как distance_meters). Если это значение не указано, расстояние по прямой не возвращается. Должно быть указано как latitude,longitude.

радиус

Определяет расстояние (в метрах), в пределах которого нужно возвращать результаты. С помощью параметров location и radius можно настроить поиск так, чтобы предпочтение отдавалось результатам в пределах указанной окружности. В этом случае сервис Places будет предпочитать результаты в пределах указанной области, однако более отдаленные точки также могут быть включены в ответ.

Радиус будет автоматически ограничен максимальным значением в зависимости от типа поиска и других параметров.

  • Автозаполнение: 50 000 метров.
  • Поиск поблизости:
    • с keyword или name – 50 000 метров;
    • без keyword или name
      • До 50 000 метров. Радиус корректируется динамически в зависимости от плотности застройки, независимо от параметра rankby.
      • При использовании rankby=distance параметр radius не принимается и возвращает ошибку INVALID_REQUEST.
  • Автозаполнение запросов: 50 000 м.
  • Текстовый поиск: 50 000 метров.

регион

Код региона, указываемый как двухсимвольное значение национального домена верхнего уровня. Большинство кодов ccTLD совпадают с кодами ISO 3166-1, однако имеются некоторые исключения. Например, ccTLD Великобритании – uk (.co.uk), а код ISO 3166-1 – gb (технически для Соединенного Королевства Великобритании и Северной Ирландии).

sessiontoken

Случайная строка, которая идентифицирует сеанс автозаполнения для выставления счетов.

Сеанс начинается в тот момент, когда пользователь начинает вводить запрос, а завершается тогда, когда он выбирает место и выполняется вызов информации о местах. В каждом сеансе может быть несколько запросов, после которых следует выбор одного места. Ключи API, используемые для каждого запроса в рамках сеанса, должны принадлежать одному и тому же проекту Google Cloud Console. Когда сеанс завершается, токен перестает быть действительным. Ваше приложение должно создавать новый токен для каждого сеанса. Если параметр sessiontoken не указан или вы повторно используете токен сеанса, плата за сеанс будет начислена как при отсутствии токена (каждый запрос оплачивается отдельно).

Мы рекомендуем следующее:

  • Используйте токены сеансов для всех сеансов автозаполнения.
  • Создавайте новый токен для каждого сеанса. Рекомендуется использовать UUID версии 4.
  • Убедитесь, что ключи API, используемые для всех запросов автозаполнения мест и информации о местах в рамках сеанса, принадлежат одному и тому же проекту Cloud Console.
  • Обязательно передавайте уникальный токен сеанса для каждого нового сеанса. Если использовать один токен для нескольких сеансов, плата за каждый сеанс будет начислена по отдельности.

strictbounds

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

типы

Вы можете ограничить результаты запроса автозаполнения мест определенным типом, передав параметр types. Этот параметр указывает допустимый тип или коллекцию типов из числа описанных в статье Типы мест. Если опустить этот параметр, в результатах поиска возвращаются все типы.

У места может быть только один основной тип из перечисленных в таблице 1 или таблице 2. Например, отель, в котором подают еду, может быть возвращен только с types=lodging, а не с types=restaurant.

Для значения параметра types можно указать один из приведенных ниже вариантов.

  • До пяти значений из таблицы 1 или таблицы 2. Если значений несколько, разделите их вертикальной чертой |. Пример:

    types=book_store|cafe

  • Любой поддерживаемый фильтр из таблицы 3. Нельзя смешивать коллекции разных типов.

Запрос будет отклонен с ошибкой INVALID_REQUEST, если:

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

Запрос на поиск заведений, содержащих строку "Amoeba", в области с центром в Сан-Франциско, Калифорния:

URL

https://maps.googleapis.com/maps/api/place/autocomplete/json
      ?input=amoeba
      &types=establishment
      &location=37.76999%2C-122.44696
      &radius=500
      &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=amoeba&types=establishment&location=37.76999%2C-122.44696&radius=500&key=YOUR_API_KEY'

Тот же запрос, ограниченный результатами в пределах 500 метров от перекрестка Эшбери-стрит и Хейт-стрит в Сан-Франциско:

URL

https://maps.googleapis.com/maps/api/place/autocomplete/json
      ?input=amoeba
      &types=establishment
      &location=37.76999%2C-122.44696&radius=500
      &strictbounds=true
      &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=amoeba&types=establishment&location=37.76999%2C-122.44696&radius=500&strictbounds=true&key=YOUR_API_KEY'

Запрос на поиск адресов, в которых содержится слово "Vict". Результаты отображаются на французском языке.

URL

https://maps.googleapis.com/maps/api/place/autocomplete/json
      ?input=Vict
      &types=geocode
      &language=fr
      &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Vict&types=geocode&language=fr&key=YOUR_API_KEY'

Запрос городов, содержащих "Vict", с результатами на бразильском португальском языке:

URL

https://maps.googleapis.com/maps/api/place/autocomplete/json
      ?input=Vict
      &types=(cities)
      &language=pt_BR&key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Vict&types=(cities)&language=pt_BR&key=YOUR_API_KEY'

Обратите внимание, что в этих примерах вам нужно будет заменить ключ API на собственный.

Ответ Place Autocomplete (старая версия)

Ответы Place Autocomplete (Legacy) возвращаются в формате, указанном флагом output в пути URL запроса. Ниже приведены результаты, которые могут быть возвращены по запросу со следующими параметрами:

URL

https://maps.googleapis.com/maps/api/place/autocomplete/json
      ?input=Paris
      &types=geocode
      &key=YOUR_API_KEY

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Paris&types=geocode&key=YOUR_API_KEY'

JSON

{
  "predictions":
    [
      {
        "description": "Paris, France",
        "matched_substrings": [{ "length": 5, "offset": 0 }],
        "place_id": "ChIJD7fiBh9u5kcRYJSMaMOCCwQ",
        "reference": "ChIJD7fiBh9u5kcRYJSMaMOCCwQ",
        "structured_formatting":
          {
            "main_text": "Paris",
            "main_text_matched_substrings": [{ "length": 5, "offset": 0 }],
            "secondary_text": "France",
          },
        "terms":
          [
            { "offset": 0, "value": "Paris" },
            { "offset": 7, "value": "France" },
          ],
        "types": ["locality", "political", "geocode"],
      },
      {
        "description": "Paris, TX, USA",
        "matched_substrings": [{ "length": 5, "offset": 0 }],
        "place_id": "ChIJmysnFgZYSoYRSfPTL2YJuck",
        "reference": "ChIJmysnFgZYSoYRSfPTL2YJuck",
        "structured_formatting":
          {
            "main_text": "Paris",
            "main_text_matched_substrings": [{ "length": 5, "offset": 0 }],
            "secondary_text": "TX, USA",
          },
        "terms":
          [
            { "offset": 0, "value": "Paris" },
            { "offset": 7, "value": "TX" },
            { "offset": 11, "value": "USA" },
          ],
        "types": ["locality", "political", "geocode"],
      },
      {
        "description": "Paris, TN, USA",
        "matched_substrings": [{ "length": 5, "offset": 0 }],
        "place_id": "ChIJ4zHP-Sije4gRBDEsVxunOWg",
        "reference": "ChIJ4zHP-Sije4gRBDEsVxunOWg",
        "structured_formatting":
          {
            "main_text": "Paris",
            "main_text_matched_substrings": [{ "length": 5, "offset": 0 }],
            "secondary_text": "TN, USA",
          },
        "terms":
          [
            { "offset": 0, "value": "Paris" },
            { "offset": 7, "value": "TN" },
            { "offset": 11, "value": "USA" },
          ],
        "types": ["locality", "political", "geocode"],
      },
      {
        "description": "Paris, Brant, ON, Canada",
        "matched_substrings": [{ "length": 5, "offset": 0 }],
        "place_id": "ChIJsamfQbVtLIgR-X18G75Hyi0",
        "reference": "ChIJsamfQbVtLIgR-X18G75Hyi0",
        "structured_formatting":
          {
            "main_text": "Paris",
            "main_text_matched_substrings": [{ "length": 5, "offset": 0 }],
            "secondary_text": "Brant, ON, Canada",
          },
        "terms":
          [
            { "offset": 0, "value": "Paris" },
            { "offset": 7, "value": "Brant" },
            { "offset": 14, "value": "ON" },
            { "offset": 18, "value": "Canada" },
          ],
        "types": ["neighborhood", "political", "geocode"],
      },
      {
        "description": "Paris, KY, USA",
        "matched_substrings": [{ "length": 5, "offset": 0 }],
        "place_id": "ChIJsU7_xMfKQ4gReI89RJn0-RQ",
        "reference": "ChIJsU7_xMfKQ4gReI89RJn0-RQ",
        "structured_formatting":
          {
            "main_text": "Paris",
            "main_text_matched_substrings": [{ "length": 5, "offset": 0 }],
            "secondary_text": "KY, USA",
          },
        "terms":
          [
            { "offset": 0, "value": "Paris" },
            { "offset": 7, "value": "KY" },
            { "offset": 11, "value": "USA" },
          ],
        "types": ["locality", "political", "geocode"],
      },
    ],
  "status": "OK",
}

XML

    
<?xml version="1.0" encoding="UTF-8"?>
<AutocompletionResponse>
 <status>OK</status>
 <prediction>
  <description>Paris, France</description>
  <type>locality</type>
  <type>political</type>
  <type>geocode</type>
  <reference>ChIJD7fiBh9u5kcRYJSMaMOCCwQ</reference>
  <term>
   <value>Paris</value>
   <offset>0</offset>
  </term>
  <term>
   <value>France</value>
   <offset>7</offset>
  </term>
  <matched_substring>
   <offset>0</offset>
   <length>5</length>
  </matched_substring>
  <place_id>ChIJD7fiBh9u5kcRYJSMaMOCCwQ</place_id>
  <structured_formatting>
   <description>Paris</description>
   <subdescription>France</subdescription>
   <description_matched_substring>
    <offset>0</offset>
    <length>5</length>
   </description_matched_substring>
  </structured_formatting>
 </prediction>
 <prediction>
  <description>Paris, TX, USA</description>
  <type>locality</type>
  <type>political</type>
  <type>geocode</type>
  <reference>ChIJmysnFgZYSoYRSfPTL2YJuck</reference>
  <term>
   <value>Paris</value>
   <offset>0</offset>
  </term>
  <term>
   <value>TX</value>
   <offset>7</offset>
  </term>
  <term>
   <value>USA</value>
   <offset>11</offset>
  </term>
  <matched_substring>
   <offset>0</offset>
   <length>5</length>
  </matched_substring>
  <place_id>ChIJmysnFgZYSoYRSfPTL2YJuck</place_id>
  <structured_formatting>
   <description>Paris</description>
   <subdescription>TX, USA</subdescription>
   <description_matched_substring>
    <offset>0</offset>
    <length>5</length>
   </description_matched_substring>
  </structured_formatting>
 </prediction>
 <prediction>
  <description>Paris, TN, USA</description>
  <type>locality</type>
  <type>political</type>
  <type>geocode</type>
  <reference>ChIJ4zHP-Sije4gRBDEsVxunOWg</reference>
  <term>
   <value>Paris</value>
   <offset>0</offset>
  </term>
  <term>
   <value>TN</value>
   <offset>7</offset>
  </term>
  <term>
   <value>USA</value>
   <offset>11</offset>
  </term>
  <matched_substring>
   <offset>0</offset>
   <length>5</length>
  </matched_substring>
  <place_id>ChIJ4zHP-Sije4gRBDEsVxunOWg</place_id>
  <structured_formatting>
   <description>Paris</description>
   <subdescription>TN, USA</subdescription>
   <description_matched_substring>
    <offset>0</offset>
    <length>5</length>
   </description_matched_substring>
  </structured_formatting>
 </prediction>
 <prediction>
  <description>Paris, Brant, ON, Canada</description>
  <type>neighborhood</type>
  <type>political</type>
  <type>geocode</type>
  <reference>ChIJsamfQbVtLIgR-X18G75Hyi0</reference>
  <term>
   <value>Paris</value>
   <offset>0</offset>
  </term>
  <term>
   <value>Brant</value>
   <offset>7</offset>
  </term>
  <term>
   <value>ON</value>
   <offset>14</offset>
  </term>
  <term>
   <value>Canada</value>
   <offset>18</offset>
  </term>
  <matched_substring>
   <offset>0</offset>
   <length>5</length>
  </matched_substring>
  <place_id>ChIJsamfQbVtLIgR-X18G75Hyi0</place_id>
  <structured_formatting>
   <description>Paris</description>
   <subdescription>Brant, ON, Canada</subdescription>
   <description_matched_substring>
    <offset>0</offset>
    <length>5</length>
   </description_matched_substring>
  </structured_formatting>
 </prediction>
 <prediction>
  <description>Paris, KY, USA</description>
  <type>locality</type>
  <type>political</type>
  <type>geocode</type>
  <reference>ChIJsU7_xMfKQ4gReI89RJn0-RQ</reference>
  <term>
   <value>Paris</value>
   <offset>0</offset>
  </term>
  <term>
   <value>KY</value>
   <offset>7</offset>
  </term>
  <term>
   <value>USA</value>
   <offset>11</offset>
  </term>
  <matched_substring>
   <offset>0</offset>
   <length>5</length>
  </matched_substring>
  <place_id>ChIJsU7_xMfKQ4gReI89RJn0-RQ</place_id>
  <structured_formatting>
   <description>Paris</description>
   <subdescription>KY, USA</subdescription>
   <description_matched_substring>
    <offset>0</offset>
    <length>5</length>
   </description_matched_substring>
  </structured_formatting>
 </prediction>
</AutocompletionResponse>

   

PlacesAutocompleteResponse

Поле Обязательно Тип Описание
Обязательно Массив<PlaceAutocompletePrediction>

Содержит массив подсказок.

Подробную информацию можно найти в статье PlaceAutocompletePrediction.

Обязательно PlacesAutocompleteStatus

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

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

необязательно string

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

необязательно Array<string>

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

Особый интерес в результатах представляют элементы place_id, которые можно использовать для запроса более подробных сведений о месте с помощью отдельного запроса. Подробнее о запросах информации о местах (устаревшая версия)…

Ответ XML состоит из одного элемента <AutocompletionResponse> с двумя типами дочерних элементов:

  • Один элемент <status> содержит метаданные запроса. Подробнее о кодах статуса…
  • Ноль или более элементов <prediction>, каждый из которых содержит информацию об одном месте. Подробную информацию о результатах можно найти в статье Результаты автозаполнения мест (Legacy). Places API возвращает до пяти результатов.

Рекомендуем использовать флаг json, если только вашему приложению по какой-то причине не требуется xml. При обработке XML-деревьев нужно быть внимательными, чтобы ссылаться на правильные узлы и элементы. Подробнее о том, как обрабатывать XML с помощью XPath…

PlacesAutocompleteStatus

Коды статуса, возвращаемые сервисом.

  • OK означает, что запрос к API успешно выполнен;
  • ZERO_RESULTS – означает, что поиск успешно выполнен, однако результаты не найдены. Такое может произойти, если в поиске были переданы границы в удаленном местоположении.
  • INVALID_REQUEST означает, что запрос к API сформирован неправильно, обычно из-за отсутствия параметра input.
  • OVER_QUERY_LIMIT, указывающий на любое из следующего:
    • Вы превысили лимиты на количество запросов в секунду.
    • В вашем аккаунте не включены платежные функции.
    • Превышен месячный бонус в размере 200 долларов США или заданное ограничение на использование.
    • Указанный способ оплаты больше не действует (например, истек срок действия кредитной карты).
    Дополнительную информацию о том, как устранить эту ошибку, можно найти в разделе часто задаваемых вопросов о Картах.
  • REQUEST_DENIED указывает, что запрос был отклонен. Обычно это происходит по следующим причинам:
    • В запросе отсутствует ключ API.
    • Недопустимый параметр key.
  • UNKNOWN_ERROR означает неизвестную ошибку.

Когда сервис Places возвращает результаты поиска в формате JSON, он помещает их в массив predictions. Даже если сервис не возвращает результатов (например, если location находится в отдаленном месте), он все равно возвращает пустой массив predictions. Ответы XML состоят из одного или нескольких элементов <prediction>.

PlaceAutocompletePrediction

Поле Обязательно Тип Описание
Обязательно string

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

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

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

Подробную информацию можно найти в описании класса PlaceAutocompleteMatchedSubstring.

Обязательно PlaceAutocompleteStructuredFormat

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

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

Обязательно Array<PlaceAutocompleteTerm>

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

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

необязательно Целое число

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

необязательно string

уникальный текстовый идентификатор места. Чтобы получить информацию о месте, передайте этот идентификатор в поле placeId запроса Places API. Подробнее об идентификаторах мест…

необязательно string

См. place_id.

необязательно Array<string>

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

PlaceAutocompleteMatchedSubstring

Поле Обязательно Тип Описание
Обязательно число

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

Обязательно число

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

PlaceAutocompleteStructuredFormat

Поле Обязательно Тип Описание
Обязательно string

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

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

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

Подробную информацию можно найти в описании класса PlaceAutocompleteMatchedSubstring.

необязательно string

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

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

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

Подробную информацию можно найти в описании класса PlaceAutocompleteMatchedSubstring.

PlaceAutocompleteTerm

Поле Обязательно Тип Описание
Обязательно число

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

Обязательно string

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

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

В этом разделе приведены рекомендации по эффективному использованию устаревшего сервиса автозаполнения мест.

Рассмотрим некоторые общие рекомендации.

Рекомендации по оптимизации затрат

Базовая оптимизация затрат

Для оптимизации затрат на сервис автозаполнения мест (Legacy) используйте маски полей в виджетах информации о местах (Legacy) и автозаполнения мест (Legacy), чтобы они возвращали только нужные вам поля данных автозаполнения мест (Legacy).

Дополнительная оптимизация затрат

Рассмотрите возможность программно реализовать сервис Place Autocomplete (Legacy), чтобы получить доступ к тарифу Autocomplete – Per Request и запрашивать результаты Geocoding API о выбранном месте вместо Place Details (Legacy). Тариф Per Request в сочетании Geocoding API будет выгоднее, чем тариф Per Session (на основе сеансов), если соблюдаются два следующих условия:

  • Если вам нужны только широта и долгота или адрес выбранного пользователем места, получить эту информацию с помощью Geocoding API дешевле, чем вызывать Place Details (Legacy).
  • Если пользователи выбирают подсказку автозаполнения мест в среднем из первых четырех запросов автозаполнения мест (устаревшее) или из меньшего числа, тариф Per Request может быть выгоднее, чем Per Session.
Чтобы выбрать реализацию автозаполнения мест (Legacy), которая будет наиболее выгодной для вашего приложения, найдите в таблице ниже строку, соответствующую потребностям вашего приложения.
Что нужно для подачи заявки Среднее количество запросов автозаполнения мест (Legacy), прежде чем пользователь выберет подсказку Рекомендуемые решения
Информация о месте, кроме адреса и местоположения, например название, статус компании или часы работы. Не ограничено Автозаполнение мест на основе сеансов (устаревшая версия) с информацией о местах (устаревшая версия)
Только адрес и широта и долгота выбранной подсказки Четыре или меньше Автозаполнение мест (устаревшее) с оплатой за запрос и Geocoding API
Только адрес и широта и долгота выбранной подсказки Больше четырех Автозаполнение мест на основе сеансов (устаревшая версия) для приложений, работающих только с адресами

Возможно, для вашего приложения Geocoding API будет более выгодным вариантом, чем Place Details (Legacy). Это зависит от того, насколько эффективно вы используете Place Autocomplete (Legacy). Эффективность функции автозаполнения мест (устаревшей) в каждом приложении зависит от того, какие запросы вводят пользователи, где используется приложение и реализованы ли рекомендации по оптимизации производительности.

Чтобы найти среднее количество запросов для таблицы, проанализируйте, сколько символов в среднем вводит пользователь, прежде чем выбирать подсказку автозаполнения мест (Legacy) в приложении.

Автозаполнение мест на основе сеансов (устаревшая версия) с информацией о местах (устаревшая версия)

Используйте сервис автозаполнения мест (устаревший) на основе сеансов совместно с информацией о местах (устаревшая версия).
Поскольку вашему приложению требуется информация о местах (устаревшая версия), например название места, статус компании или часы работы, в вашей реализации Place Autocomplete (устаревшая версия) должен использоваться токен сеанса (программно или встроенный в виджеты JavaScript, Android или iOS) за сеанс плюс применимые коды Places Data в зависимости от того, какие поля данных о местах вы запрашиваете.1

Реализация виджета
Функция автоматического управления сеансами встроена в виджеты для JavaScript, Android и iOS. В нее входят как запросы автозаполнения мест (Legacy), так и запрос информации о местах (Legacy) для выбранной подсказки. Обязательно укажите параметр fields, чтобы запрашивались только нужные поля данных автозаполнения мест (Legacy).

Программная реализация
Используйте токен сеанса с запросами Place Autocomplete (Legacy). При запросе информации о местах (Legacy) по выбранной подсказке укажите следующие параметры:

  1. идентификатор места из ответа автозаполнения мест (устаревшая версия)
  2. токен сеанса, использованный в запросе автозаполнения мест (устаревшая версия);
  3. Параметр fields, указывающий нужные поля данных автозаполнения мест (устаревшее).

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

Реализуйте автозаполнение мест (Legacy) программно без токенов сеансов и вызывайте Geocoding API для выбранной подсказки места.
Geocoding API предоставляет адреса и координаты широты и долготы. Четыре запроса Autocomplete – Per Request вместе с вызовом Geocoding API о выбранной подсказке места стоят меньше, чем один сеанс автозаполнения мест (Legacy)1.

Вы можете применить рекомендации по оптимизации эффективности, чтобы помочь пользователям получать нужные подсказки, вводя минимальное количество символов.

Автозаполнение мест на основе сеансов (устаревшая версия) для приложений, работающих только с адресами

Используйте сервис автозаполнения мест (устаревший) на основе сеансов совместно с информацией о местах (устаревшая версия).
Поскольку среднее количество запросов, которые вы ожидаете сделать до того, как пользователь выберет подсказку автозаполнения мест (устаревшая версия), превышает стоимость тарифа за сеанс, в вашей реализации автозаполнения мест (устаревшая версия) должен использоваться токен сеанса как для запросов автозаполнения мест (устаревшая версия), так и для связанного запроса информации о местах (устаревшая версия) за сеанс. 1

Реализация виджета
Функция автоматического управления сеансами встроена в виджеты для JavaScript, Android и iOS. В нее входят как запросы автозаполнения мест (Legacy), так и запрос информации о местах (Legacy) для выбранной подсказки. Обязательно укажите параметр fields, чтобы запрашивались только нужные поля.

Программная реализация
Используйте токен сеанса с запросами Place Autocomplete (Legacy). Запрашивая у Place Details (Legacy) информацию о выбранной подсказке, указывайте следующие параметры:

  1. идентификатор места из ответа автозаполнения мест (устаревшая версия)
  2. токен сеанса, использованный в запросе автозаполнения мест (устаревшая версия);
  3. Параметр fields, указывающий поля данных Basic Data, например адрес и геометрические данные.

Рассмотрите возможность откладывать запросы автозаполнения мест (Legacy)
Вы можете попробовать различные стратегии, например откладывать запрос автозаполнения мест (Legacy), пока пользователь не введет первые три или четыре символа, чтобы ваше приложение совершало меньше запросов. Например, если вы отправляете запросы Place Autocomplete (Legacy) для каждого символа после того, как пользователь ввел третий символ, то, если пользователь введет семь символов и выберет подсказку, для которой вы отправите один запрос Geocoding API, общая стоимость будет равна стоимости четырех запросов Place Autocomplete (Legacy) Per Request и одного запроса Geocoding API1.

Если при откладывании запросов среднее число автоматизированных запросов станет меньше четырех, вы сможете эффективно использовать сервис автозаполнения мест (Legacy) с Geocoding API. Обратите внимание, что пользователь, ожидающий появления подсказок с каждым введенным символом, может принять откладывание запросов за задержку.

Вы можете применить рекомендации по оптимизации эффективности, чтобы помочь пользователям получать нужные подсказки, вводя меньше символов.

Рекомендации по повышению эффективности

В рекомендациях ниже описаны способы оптимизации производительности автозаполнения мест (Legacy):

  • Добавьте в свою реализацию Place Autocomplete (Legacy) ограничения по стране, предпочтение местоположений и (для программных реализаций) предпочитаемый язык. Предпочитаемый язык не нужен в случае виджетов, потому что для них язык определяется на основе языковых настроек браузера или мобильного устройства.
  • Если вместе с автозаполнением мест (Legacy) отображается карта, вы можете сделать предпочитаемым местоположением видимую область карты.
  • Если пользователь не выберет ни одну из подсказок автозаполнения мест (Legacy) – чаще всего такое бывает, если ни одна из них не соответствует искомому адресу, — вы можете повторно использовать изначально введенные пользователем данные, чтобы получить более подходящие результаты:
    • Если вы рассчитываете, что пользователь будет вводить только информацию об адресе, повторно используйте изначально введенные им данные в вызове Geocoding API.
    • Если пользователь скорее всего будет вводить запросы для определенного места по названию или адресу, используйте запрос информации о местах (устаревший). Если ожидается, что результаты будут из определенного региона, используйте предпочтение местоположений.
    К другим сценариям, при которых лучше вернуться к использованию Geocoding API, относятся следующие:
    • Пользователи вводят адреса, содержащие номер квартиры или офиса. Так, для адреса в Чехии "Stroupežnického 3191/17, Praha" автозаполнение мест (устаревшее) покажет частичную подсказку.
    • Пользователь вводит адрес с префиксом для ряда домов, например "23-30 29th St, Queens" в Нью-Йорке или "47-380 Kamehameha Hwy, Kaneohe" на острове Кауаи (Гавайи).

Приоритет местоположения

Настроить предпочтение результатов из определенной области с помощью параметров location и radius. Это указывает автозаполнению мест (Legacy) предпочитать результаты в пределах заданной области. однако более отдаленные точки также могут быть включены в ответ. С помощью параметра includedRegionCodes можно отфильтровать результаты, чтобы в них показывались только места в указанной стране.

Ограничение местоположений

Ограничить результаты определенной областью, передав параметр locationRestriction.

Вы также можете ограничить результаты регионом, заданным параметрами location и radius, добавив параметр strictbounds. В этом случае автозаполнение мест (устаревшее) будет возвращать результаты только из указанного региона.