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

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

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

Размещайте запросы с автозаполнением (устаревшая версия).

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

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

Необходимо правильно форматировать коды плюса. Это означает, что знак плюса нужно экранировать как %2B , а пробелы — как %20 .

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

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

Запрос Place Autocomplete (Legacy) представляет собой HTTP-URL следующего вида:

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

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

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

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

Необходимые параметры

  • вход

    Текстовая строка, по которой будет производиться поиск. Сервис автозаполнения Place вернет потенциальные совпадения на основе этой строки и упорядочит результаты в зависимости от их предполагаемой релевантности.

Дополнительные параметры

  • компоненты

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

    Примечание: Если вы получаете неожиданные результаты при использовании кода страны, убедитесь, что вы используете код, включающий страны, зависимые территории и особые географические регионы, представляющие для вас интерес. Информацию о кодах можно найти в Википедии: Список кодов стран ISO 3166 или на онлайн-платформе поиска кодов ISO .
  • язык

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

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

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

    При использовании API текстового поиска параметр `location` может быть переопределен, если запрос содержит явное указание местоположения, например, `Рынок в Барселоне`.
  • смещение местоположения

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

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

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

    • Круговой: строка, указывающая радиус в метрах, а также широту и долготу в десятичных градусах. Используйте следующий формат: circle:radius@lat,lng .
    • Rectangular: Строка, указывающая две пары широты/долготы в десятичных градусах, представляющие юго-западную и северо-восточную точки прямоугольника. Используйте следующий формат: 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 («домен верхнего уровня») . Большинство кодов ccTLD идентичны кодам ISO 3166-1, за некоторыми заметными исключениями. Например, ccTLD Соединенного Королевства — «uk» (.co.uk), а его код ISO 3166-1 — «gb» (технически обозначающий «Соединенное Королевство Великобритании и Северной Ирландии»).

  • сессионный токен

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

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

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

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

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

  • типы

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

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

    Для значения параметра types можно указать один из следующих вариантов:

    • До пяти значений из Таблицы 1 или Таблицы 2. Для нескольких значений разделяйте каждое значение символом | (вертикальной чертой). Например:

      types=book_store|cafe

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

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

    • Указано более пяти типов.
    • Присутствуют все нераспознанные типы.
    • Любые типы из Таблицы 1 или Таблицы 2 смешиваются с любым из фильтров в Таблице 3 .

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

Запрос для заведений, в названии которых содержится строка "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 -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 -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 -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 -L -X GET 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Vict&types=(cities)&language=pt_BR&key=YOUR_API_KEY'

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

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

Ответы функции автозаполнения (устаревшая версия) возвращаются в формате, указанном флагом output в URL-адресе запроса. Приведенные ниже результаты являются примером того, что может быть возвращено для запроса со следующими параметрами:

URL

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

локон

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

Поле Необходимый Тип Описание
необходимый Array< PlaceAutocompletePrediction >

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

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

необходимый PlacesAutocompleteStatus

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

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

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

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

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

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

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

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

Мы рекомендуем использовать json в качестве предпочтительного выходного параметра, если только ваше приложение по какой-либо причине не требует xml . Обработка XML-деревьев требует определенной осторожности, поэтому необходимо указывать ссылки на соответствующие узлы и элементы. См. раздел «Обработка XML с помощью XPath» для получения справки по обработке XML.

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

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

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

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

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

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

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

Вот несколько общих рекомендаций:

  • Самый быстрый способ разработать работающий пользовательский интерфейс — использовать виджет Maps JavaScript API Place Autocomplete (Legacy) , виджет Places SDK для Android Place Autocomplete (Legacy) или элемент управления Place Autocomplete (Legacy) UI из Places SDK для iOS.
  • С самого начала разберитесь с основными полями данных для автозаполнения (устаревшая функция).
  • Поля, указывающие на географическое местоположение и ограничивающие местоположение, являются необязательными, но могут существенно повлиять на эффективность автозаполнения.
  • Используйте обработку ошибок, чтобы ваше приложение корректно работало, если API возвращает ошибку.
  • Убедитесь, что ваше приложение обрабатывает ситуацию, когда выбор отсутствует, и предлагает пользователям способ продолжить.

Передовые методы оптимизации затрат

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

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

Расширенная оптимизация затрат

Рассмотрите возможность программной реализации функции автозаполнения мест (устаревшая версия), чтобы получить доступ к ценообразованию SKU: Автозаполнение — за запрос и запрашивать результаты API геокодирования для выбранного места вместо подробных сведений о месте (устаревшая версия). Ценообразование за запрос в сочетании с API геокодирования более экономически выгодно, чем ценообразование за сессию (на основе сессии), если выполняются оба следующих условия:

  • Если вам нужны только широта/долгота или адрес выбранного пользователем места, API геокодирования предоставит эту информацию дешевле, чем вызов функции «Подробная информация о месте» (устаревшая версия).
  • Если пользователи выбирают вариант автозаполнения в среднем в четырех или менее запросах на автозаполнение Place Autocomplete (Legacy), то ценообразование за запрос может оказаться более экономически выгодным, чем ценообразование за сессию.
Чтобы получить помощь в выборе подходящей вам реализации функции автозаполнения мест (устаревшая версия), выберите вкладку, соответствующую вашему ответу на следующий вопрос.

Требует ли ваше приложение какой-либо дополнительной информации, помимо адреса и широты/долготы выбранного прогноза?

Да, требуется более подробная информация.

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

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

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

  1. Идентификатор места из ответа функции автозаполнения мест (устаревшая версия).
  2. Токен сессии, используемый в запросе Place Autocomplete (Legacy).
  3. Параметр fields указывает, какие поля данных для автозаполнения (устаревшая версия) вам необходимы.

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

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

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

В среднем, пользователи выбирают вариант автозаполнения «Местоположение» (устаревшая версия) не более чем в четырех запросах?

Да

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

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

Нет

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

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

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

  1. Идентификатор места из ответа функции автозаполнения мест (устаревшая версия).
  2. Токен сессии, используемый в запросе Place Autocomplete (Legacy).
  3. Параметр fields задает поля основных данных , такие как адрес и геометрия.

Рассмотрите возможность отложить запросы на автозаполнение мест (устаревшие версии).
Вы можете использовать такие стратегии, как задержка запроса автозаполнения места (Legacy) до тех пор, пока пользователь не введёт первые три или четыре символа, чтобы ваше приложение выполняло меньше запросов. Например, если отправлять запросы автозаполнения места (Legacy) для каждого символа после того, как пользователь введёт третий символ, это означает, что если пользователь введёт семь символов, а затем выберет предсказание, для которого вы отправите один запрос API геокодирования, общая стоимость составит 4 запроса автозаполнения места (Legacy) + геокодирование. 1

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

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


  1. Информацию о стоимости можно найти в прайс-листах платформы Google Maps .

лучшие практики повышения производительности

В следующих рекомендациях описаны способы оптимизации работы функции автозаполнения мест (устаревшая версия):

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

Смещение в сторону местоположения

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

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

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

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