Автозаполнение (новое)

Выберите платформу: Android iOS JavaScript Web Service
Разработчики Европейской экономической зоны (ЕЭЗ)

Введение

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

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

Ответ от функции автозаполнения (новый) может содержать два типа прогнозов:

  • Прогнозы мест : места, такие как компании, адреса и достопримечательности, на основе указанной текстовой строки и области поиска. Прогнозы мест возвращаются по умолчанию.
  • Прогнозы запроса : строки запроса, соответствующие входной текстовой строке и области поиска. Прогнозы запроса по умолчанию не возвращаются. Используйте параметр запроса includeQueryPredictions , чтобы добавить прогнозы запроса в ответ.

Например, вы вызываете функцию автозаполнения (New), используя в качестве входных данных строку, содержащую частично введенный пользователем запрос «Sicilian piz», при этом область поиска ограничена Сан-Франциско, штат Калифорния. В ответе содержится список подсказок мест , соответствующих строке поиска и области поиска, например, ресторан под названием «Sicilian Pizza Kitchen», а также подробная информация об этом месте.

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

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

API Explorer позволяет вам делать живые запросы, чтобы вы могли ознакомиться с API и его параметрами:

Автозаполнение (новых) запросов

Запрос автозаполнения (новый) — это HTTP-запрос POST к URL-адресу в форме:

https://places.googleapis.com/v1/places:autocomplete

Передайте все параметры в теле JSON-запроса или в заголовках как часть POST-запроса. Например:

curl -X POST -d '{
  "input": "pizza",
  "locationBias": {
    "circle": {
      "center": {
        "latitude": 37.7937,
        "longitude": -122.3965
      },
      "radius": 500.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
https://places.googleapis.com/v1/places:autocomplete

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

Параметр

Описание

input *

Текстовая строка для поиска (полные слова, подстроки, названия мест, адреса, плюс-коды).

FieldMask (заголовок HTTP)

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

includedPrimaryTypes

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

includePureServiceAreaBusinesses

Если задано значение «истина», то включаются компании без физического местоположения (компании, обслуживающие территорию). Значение по умолчанию — «ложь».

includeQueryPredictions

Если значение true, в ответ включаются как прогнозы по месту, так и прогнозы по запросу. Значение по умолчанию — false.

includedRegionCodes

Массив из до 15 двухсимвольных кодов стран для ограничения результатов.

inputOffset

Смещение позиции курсора в строке ввода (символы Unicode), начинающееся с нуля, влияет на прогнозы. По умолчанию равно длине входного символа.

languageCode

Предпочтительный язык (код IETF BCP-47) для результатов. По умолчанию используется заголовок Accept-Language или «en».

locationBias

Указывает область (круг или прямоугольник), к которой будут смещены результаты поиска, позволяя результаты за пределами этой области. Не может использоваться с locationRestriction.

locationRestriction

Задаёт область (круг или прямоугольник), в пределах которой будут ограничены результаты поиска. Результаты за пределами этой области исключаются. Не может использоваться с locationBias.

origin

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

regionCode

Код региона, используемый для форматирования ответа и предположений о предвзятости (например, «uk», «fr»).

sessionToken

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

* Обозначает обязательное поле.

Об ответе

Функция автозаполнения (новая) возвращает JSON-объект в качестве ответа. В ответе:

  • Массив suggestions содержит все предсказанные места и запросы, упорядоченные по степени их релевантности. Каждое место представлено полем placePrediction , а каждый запрос — полем queryPrediction .
  • Поле placePrediction содержит подробную информацию об одном прогнозе места, включая идентификатор места и текстовое описание.
  • Поле queryPrediction содержит подробную информацию об одном прогнозе запроса.

Полный объект JSON имеет следующий вид:

{
  "suggestions": [
    {
      "placePrediction": {
        "place": "places/ChIJ5YQQf1GHhYARPKG7WLIaOko",
        "placeId": "ChIJ5YQQf1GHhYARPKG7WLIaOko",
        "text": {
          "text": "Amoeba Music, Haight Street, San Francisco, CA, USA",
          "matches": [
            {
              "endOffset": 6
            }]
        },
      ...
    },
    {
      "queryPrediction": {
        "text": {
          "text": "Amoeba Music",
          "matches": [
            {
              "endOffset": 6
            }]
        },
        ...
    }
  ...]
}

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

  • вход

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

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

  • FieldMask

    Укажите список полей, возвращаемых в ответе, создав маску поля ответа . Передайте маску поля ответа методу с помощью HTTP-заголовка X-Goog-FieldMask .

    Укажите список полей подсказок, разделённых запятыми, которые необходимо вернуть. Например, чтобы получить suggestions.placePrediction.text.text и suggestions.queryPrediction.text.text подсказки.

      X-Goog-FieldMask: suggestions.placePrediction.text.text,suggestions.queryPrediction.text.text

    Используйте * для извлечения всех полей.

      X-Goog-FieldMask: *
  • включеныPrimaryTypes

    Место может иметь только один основной тип из перечисленных в таблице A или таблице B. Например, основным типом может быть "mexican_restaurant" или "steak_house" .

    По умолчанию API возвращает все места на основе input параметра, независимо от значения основного типа, связанного с местом. Ограничьте результаты одним или несколькими основными типами, передав параметр includedPrimaryTypes .

    Используйте этот параметр, чтобы указать до пяти значений типа из таблицы A или таблицы B. Для включения в ответ место должно соответствовать одному из указанных значений основного типа.

    Этот параметр может также включать один из вариантов: (regions) или (cities) . Тип сбора (regions) фильтрует области или подразделения, такие как районы и почтовые индексы. Тип сбора (cities) фильтрует места, которые Google идентифицирует как города.

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

    • Указано более пяти типов.
    • Любой тип указывается в дополнение к (cities) или (regions) .
    • Указаны все нераспознанные типы.
  • includePureServiceAreaBusinesses

    Если установлено значение true , ответ включает компании, которые посещают клиентов или доставляют им товары напрямую, но не имеют физического офиса. Если установлено значение false , API возвращает только компании с физическим офисом.

  • includeQueryPredictions

    Значение true означает, что ответ включает как прогнозы по месту, так и по запросу. Значение по умолчанию — false , что означает, что ответ включает только прогнозы по месту.

  • включеныRegionCodes

    Включать результаты только из списка указанных регионов, заданных в виде массива, содержащего до 15 двухсимвольных значений ccTLD (доменов верхнего уровня) . Если этот параметр пропущен, к ответу не применяются никакие ограничения. Например, чтобы ограничить регионы Германией и Францией:

        "includedRegionCodes": ["de", "fr"]

    Если указать и locationRestriction , и includedRegionCodes , результаты будут расположены в области пересечения двух настроек.

  • inputOffset

    Смещение символа Unicode (отсчитывается от нуля), указывающее позицию курсора в input . Положение курсора может влиять на возвращаемые прогнозы. Если значение пусто, по умолчанию используется длина строки input .

  • код_языка

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

    • Для указания предпочитаемого языка необходимо использовать языковые коды IETF BCP-47 .
    • Если languageCode не указан, API использует значение, указанное в заголовке Accept-Language . Если не указано ни одно из них, по умолчанию используется en . Если указан недопустимый код языка, API возвращает ошибку INVALID_ARGUMENT .
    • Предпочтительный язык оказывает небольшое влияние на набор результатов, возвращаемых API, и порядок их возврата. Это также влияет на способность API исправлять орфографические ошибки.
    • API стремится предоставить уличный адрес, понятный как пользователю, так и местному населению, и при этом отражающий введенные пользователем данные. Прогнозы местоположений форматируются по-разному в зависимости от введенных пользователем данных в каждом запросе.
      • Сначала выбираются соответствующие термины во input параметре, при этом используются имена, соответствующие языковым предпочтениям, указанным параметром languageCode (если они доступны), в противном случае используются имена, которые лучше всего соответствуют пользовательскому вводу.
      • Адреса форматируются на местном языке, по возможности в понятном для пользователя тексте, только после того, как будут выбраны соответствующие термины, соответствующие терминам во input параметре.
      • Все остальные адреса возвращаются на предпочитаемом языке после выбора соответствующих терминов, соответствующих терминам во input параметре. Если имя недоступно на предпочитаемом языке, API использует наиболее близкое совпадение.
  • МестоположениеПредвзятость или ограничение местоположения

    Для определения области поиска можно указать locationBias или locationRestriction , но не оба одновременно. locationRestriction задаёт регион, в пределах которого должны находиться результаты, а locationBias — регион, вблизи которого должны находиться результаты, но который может находиться за его пределами.

    • locationBias

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

    • МестоположениеОграничение

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

    Укажите область locationBias или locationRestriction как прямоугольную область просмотра или как круг .

    • Окружность определяется точкой центра и радиусом в метрах. Радиус должен находиться в диапазоне от 0,0 до 50000,0 включительно. Значение по умолчанию — 0,0. Для locationRestriction необходимо задать радиус больше 0,0. В противном случае запрос не вернёт результатов.

      Например:

      "locationBias": {
        "circle": {
          "center": {
            "latitude": 37.7937,
            "longitude": -122.3965
          },
          "radius": 500.0
        }
      }
    • Прямоугольник — это область просмотра, представленная в виде двух диагонально противоположных точек: low и верхней. Область просмотра считается замкнутой областью, то есть включает её границу. Границы широты должны находиться в диапазоне от -90 до 90 градусов включительно, а границы долготы — в диапазоне от -180 до 180 градусов включительно.

      • Если low = high , то область просмотра состоит из этой единственной точки.
      • Если low.longitude > high.longitude , диапазон долготы инвертируется (область просмотра пересекает линию долготы 180 градусов).
      • Если low.longitude = -180 градусов и high.longitude = 180 градусов, область просмотра включает все долготы.
      • Если low.longitude = 180 градусов, а high.longitude = -180 градусов, диапазон долготы пуст.

      Оба low и high должны быть заполнены, и отображаемое поле не может быть пустым. Пустая область просмотра приводит к ошибке.

      Например, эта область просмотра полностью охватывает Нью-Йорк:

      "locationBias": {
        "rectangle": {
          "low": {
            "latitude": 40.477398,
            "longitude": -74.259087
          },
          "high": {
            "latitude": 40.91618,
            "longitude": -73.70018
          }
        }
      }
  • источник

    Начальная точка, от которой рассчитывается расстояние по прямой до пункта назначения (возвращается как distanceMeters ). Если это значение пропущено, расстояние по прямой не будет возвращено. Необходимо указать координаты широты и долготы:

    "origin": {
        "latitude": 40.477398,
        "longitude": -74.259087
    }
  • Код региона

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

    Предложения также зависят от региональных кодов. Google рекомендует устанавливать regionCode в соответствии с региональными предпочтениями пользователя.

    Если указан недопустимый код региона, API возвращает ошибку INVALID_ARGUMENT . Этот параметр может повлиять на результаты в соответствии с действующим законодательством.

  • sessionToken

    Токены сеансов — это генерируемые пользователями строки, которые отслеживают вызовы функции автозаполнения (New) как «сеансы». Функция автозаполнения (New) использует токены сеансов для группировки этапов запроса и выбора в рамках поиска пользователя с функцией автозаполнения в отдельный сеанс для выставления счетов. Подробнее см. в разделе Токены сеансов .

Выберите параметры для смещения результатов

Параметры автозаполнения (новые) могут по-разному влиять на результаты поиска. В следующей таблице представлены рекомендации по использованию параметров в зависимости от предполагаемого результата.
Параметр Рекомендации по использованию
regionCode Устанавливается в соответствии с региональными предпочтениями пользователя.
includedRegionCodes Установите ограничение результатов списком указанных регионов.
locationBias Используйте, когда предпочтительны результаты , относящиеся к определённому региону или его окрестностям . Если применимо, определите регион как область просмотра карты, которую просматривает пользователь.
locationRestriction Используйте только в том случае, если результаты за пределами региона не должны возвращаться.
origin Используйте, когда предполагается прямолинейное расстояние до каждого прогноза.

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

Ограничить поиск областью с помощью locationRestriction

locationRestriction задаёт область поиска. Результаты за пределами указанной области не возвращаются. В следующем примере locationRestriction используется для ограничения запроса окружностью радиусом 5000 метров с центром в Сан-Франциско:

curl -X POST -d '{
  "input": "Art museum",
  "locationRestriction": {
    "circle": {
      "center": {
        "latitude": 37.7749,
        "longitude": -122.4194
      },
      "radius": 5000.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
https://places.googleapis.com/v1/places:autocomplete

Все результаты из указанных областей содержатся в массиве suggestions :

  {
    "suggestions": [
      {
        "placePrediction": {
          "place": "places/ChIJkQQVTZqAhYARHxPt2iJkm1Q",
          "placeId": "ChIJkQQVTZqAhYARHxPt2iJkm1Q",
          "text": {
            "text": "Asian Art Museum, Larkin Street, San Francisco, CA, USA",
            "matches": [
              {
                "startOffset": 6,
                "endOffset": 16
              }
            ]
          },
          "structuredFormat": {
            "mainText": {
              "text": "Asian Art Museum",
              "matches": [
                {
                  "startOffset": 6,
                  "endOffset": 16
                }
              ]
            },
            "secondaryText": {
              "text": "Larkin Street, San Francisco, CA, USA"
            }
          },
          "types": [
            "establishment",
            "museum",
            "point_of_interest"
          ]
        }
      },
      {
        "placePrediction": {
          "place": "places/ChIJI7NivpmAhYARSuRPlbbn_2w",
          "placeId": "ChIJI7NivpmAhYARSuRPlbbn_2w",
          "text": {
            "text": "de Young Museum, Hagiwara Tea Garden Drive, San Francisco, CA, USA",
            "matches": [
              {
                "endOffset": 15
              }
            ]
          },
          "structuredFormat": {
            "mainText": {
              "text": "de Young Museum",
              "matches": [
                {
                  "endOffset": 15
                }
              ]
            },
            "secondaryText": {
              "text": "Hagiwara Tea Garden Drive, San Francisco, CA, USA"
            }
          },
          "types": [
            "establishment",
            "point_of_interest",
            "tourist_attraction",
            "museum"
          ]
        }
      },
      /.../
    ]
  }

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

  curl -X POST -d '{
    "input": "Art museum",
    "locationRestriction": {
      "rectangle": {
        "low": {
          "latitude": 37.7751,
          "longitude": -122.4219
        },
        "high": {
          "latitude": 37.7955,
          "longitude": -122.3937
        }
      }
    }
  }' \
  -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
  https://places.googleapis.com/v1/places:autocomplete

Результаты содержатся в массиве suggestions :

  {
    "suggestions": [
      {
        "placePrediction": {
          "place": "places/ChIJkQQVTZqAhYARHxPt2iJkm1Q",
          "placeId": "ChIJkQQVTZqAhYARHxPt2iJkm1Q",
          "text": {
            "text": "Asian Art Museum, Larkin Street, San Francisco, CA, USA",
            "matches": [
              {
                "startOffset": 6,
                "endOffset": 16
              }
            ]
          },
          "structuredFormat": {
            "mainText": {
              "text": "Asian Art Museum",
              "matches": [
                {
                  "startOffset": 6,
                  "endOffset": 16
                }
              ]
            },
            "secondaryText": {
              "text": "Larkin Street, San Francisco, CA, USA"
            }
          },
          "types": [
            "point_of_interest",
            "museum",
            "establishment"
          ]
        }
      },
      {
        "placePrediction": {
          "place": "places/ChIJyQNK-4SAhYARO2DZaJleWRc",
          "placeId": "ChIJyQNK-4SAhYARO2DZaJleWRc",
          "text": {
            "text": "International Art Museum of America, Market Street, San Francisco, CA, USA",
            "matches": [
              {
                "startOffset": 14,
                "endOffset": 24
              }
            ]
          },
          "structuredFormat": {
            "mainText": {
              "text": "International Art Museum of America",
              "matches": [
                {
                  "startOffset": 14,
                  "endOffset": 24
                }
              ]
            },
            "secondaryText": {
              "text": "Market Street, San Francisco, CA, USA"
            }
          },
          "types": [
            "museum",
            "point_of_interest",
            "tourist_attraction",
            "art_gallery",
            "establishment"
          ]
        }
      }
    ]
  }

Поиск по области с использованием locationBias

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

curl -X POST -d '{
  "input": "Amoeba",
  "locationBias": {
    "circle": {
      "center": {
        "latitude": 37.7749,
        "longitude": -122.4194
      },
      "radius": 5000.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
https://places.googleapis.com/v1/places:autocomplete

Результаты теперь содержат гораздо больше элементов, включая результаты за пределами радиуса 5000 метров:

{
  "suggestions": [
    {
      "placePrediction": {
        "place": "places/ChIJ5YQQf1GHhYARPKG7WLIaOko",
        "placeId": "ChIJ5YQQf1GHhYARPKG7WLIaOko",
        "text": {
          "text": "Amoeba Music, Haight Street, San Francisco, CA, USA",
          "matches": [
            {
              "endOffset": 6
            }
          ]
        },
        "structuredFormat": {
          "mainText": {
            "text": "Amoeba Music",
            "matches": [
              {
                "endOffset": 6
              }
            ]
          },
          "secondaryText": {
            "text": "Haight Street, San Francisco, CA, USA"
          }
        },
        "types": [
          "electronics_store",
          "point_of_interest",
          "store",
          "establishment",
          "home_goods_store"
        ]
      }
    },
    {
      "placePrediction": {
        "place": "places/ChIJr7uwwy58hYARBY-e7-QVwqw",
        "placeId": "ChIJr7uwwy58hYARBY-e7-QVwqw",
        "text": {
          "text": "Amoeba Music, Telegraph Avenue, Berkeley, CA, USA",
          "matches": [
            {
              "endOffset": 6
            }
          ]
        },
        "structuredFormat": {
          "mainText": {
            "text": "Amoeba Music",
            "matches": [
              {
                "endOffset": 6
              }
            ]
          },
          "secondaryText": {
            "text": "Telegraph Avenue, Berkeley, CA, USA"
          }
        },
        "types": [
          "electronics_store",
          "point_of_interest",
          "establishment",
          "home_goods_store",
          "store"
        ]
      }
    },
    ...
  ]
}

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

  curl -X POST -d '{
    "input": "Amoeba",
    "locationBias": {
      "rectangle": {
        "low": {
          "latitude": 37.7751,
          "longitude": -122.4219
        },
        "high": {
          "latitude": 37.7955,
          "longitude": -122.3937
        }
      }
    }
  }' \
  -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
  https://places.googleapis.com/v1/places:autocomplete

Хотя результаты поиска в прямоугольной области просмотра отображаются в ответе, некоторые из них выходят за заданные границы из-за смещения. Результаты также содержатся в массиве suggestions :

  {
    "suggestions": [
      {
        "placePrediction": {
          "place": "places/ChIJ5YQQf1GHhYARPKG7WLIaOko",
          "placeId": "ChIJ5YQQf1GHhYARPKG7WLIaOko",
          "text": {
            "text": "Amoeba Music, Haight Street, San Francisco, CA, USA",
            "matches": [
              {
                "endOffset": 6
              }
            ]
          },
          "structuredFormat": {
            "mainText": {
              "text": "Amoeba Music",
              "matches": [
                {
                  "endOffset": 6
                }
              ]
            },
            "secondaryText": {
              "text": "Haight Street, San Francisco, CA, USA"
            }
          },
          "types": [
            "point_of_interest",
            "store",
            "establishment"
          ]
        }
      },
      {
        "placePrediction": {
          "place": "places/ChIJr7uwwy58hYARBY-e7-QVwqw",
          "placeId": "ChIJr7uwwy58hYARBY-e7-QVwqw",
          "text": {
            "text": "Amoeba Music, Telegraph Avenue, Berkeley, CA, USA",
            "matches": [
              {
                "endOffset": 6
              }
            ]
          },
          "structuredFormat": {
            "mainText": {
              "text": "Amoeba Music",
              "matches": [
                {
                  "endOffset": 6
                }
              ]
            },
            "secondaryText": {
              "text": "Telegraph Avenue, Berkeley, CA, USA"
            }
          },
          "types": [
            "point_of_interest",
            "store",
            "establishment"
          ]
        }
      },
      {
        "placePrediction": {
          "place": "places/ChIJRdmfADq_woARYaVhnfQSUTI",
          "placeId": "ChIJRdmfADq_woARYaVhnfQSUTI",
          "text": {
            "text": "Amoeba Music, Hollywood Boulevard, Los Angeles, CA, USA",
            "matches": [
              {
                "endOffset": 6
              }
            ]
          },
          "structuredFormat": {
            "mainText": {
              "text": "Amoeba Music",
              "matches": [
                {
                  "endOffset": 6
                }
              ]
            },
            "secondaryText": {
              "text": "Hollywood Boulevard, Los Angeles, CA, USA"
            }
          },
          "types": [
            "point_of_interest",
            "store",
            "establishment"
          ]
        }
      },
    /.../
    ]
  }

Использовать включенные основные типы

Используйте параметр includedPrimaryTypes , чтобы указать до пяти значений типа из таблицы A , таблицы B или только (regions) или только (cities) . Для включения в ответ место должно соответствовать одному из указанных значений основного типа.

В следующем примере вы указываете input строку «Футбол» и используете параметр includedPrimaryTypes для ограничения результатов заведениями типа "sporting_goods_store" :

curl -X POST -d '{
  "input": "Soccer",
  "includedPrimaryTypes": ["sporting_goods_store"],
  "locationBias": {
    "circle": {
      "center": {
        "latitude": 37.7749,
        "longitude": -122.4194
      },
      "radius": 500.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
https://places.googleapis.com/v1/places:autocomplete

Если вы опустите параметр includedPrimaryTypes , то результаты могут включать заведения ненужного вам типа, например "athletic_field" .

Запрос прогнозов запроса

Прогнозы запросов по умолчанию не возвращаются. Используйте параметр запроса includeQueryPredictions , чтобы добавить прогнозы запросов в ответ. Например:

curl -X POST -d '{
  "input": "Amoeba",
  "includeQueryPredictions": true,
  "locationBias": {
    "circle": {
      "center": {
        "latitude": 37.7749,
        "longitude": -122.4194
      },
      "radius": 5000.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
https://places.googleapis.com/v1/places:autocomplete

Массив suggestions теперь содержит как прогнозы мест, так и прогнозы запросов, как показано выше в разделе «Об ответе» . Каждый прогноз запроса включает text поле с рекомендуемой строкой поиска. Вы можете выполнить запрос «Поиск текста (новый)» , чтобы получить дополнительную информацию о любом из возвращенных прогнозов запроса.

Использовать источник

В этом примере укажите в запросе координаты origin в виде широты и долготы. При указании origin функция автозаполнения (New) добавит в ответ поле distanceMeters , содержащее расстояние по прямой от origin до конечной точки. В этом примере начальная точка устанавливается в центре Сан-Франциско:

curl -X POST -d '{
  "input": "Amoeba",
  "origin": {
    "latitude": 37.7749,
    "longitude": -122.4194
  },
  "locationRestriction": {
    "circle": {
      "center": {
        "latitude": 37.7749,
        "longitude": -122.4194
      },
      "radius": 5000.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
https://places.googleapis.com/v1/places:autocomplete

Теперь ответ включает distanceMeters :

{
  "suggestions": [
    {
      "placePrediction": {
        "place": "places/ChIJ5YQQf1GHhYARPKG7WLIaOko",
        "placeId": "ChIJ5YQQf1GHhYARPKG7WLIaOko",
        "text": {
          "text": "Amoeba Music, Haight Street, San Francisco, CA, USA",
          "matches": [
            {
              "endOffset": 6
            }
          ]
        },
        "structuredFormat": {
          "mainText": {
            "text": "Amoeba Music",
            "matches": [
              {
                "endOffset": 6
              }
            ]
          },
          "secondaryText": {
            "text": "Haight Street, San Francisco, CA, USA"
          }
        },
        "types": [
          "home_goods_store",
          "establishment",
          "point_of_interest",
          "store",
          "electronics_store"
        ],
        "distanceMeters": 3012
      }
    }
  ]
}

Расстояние отсутствует в ответе

В некоторых случаях distanceMeters отсутствует в теле ответа, даже если в запросе указан origin . Это может произойти в следующих случаях:

  • distanceMeters не учитывается при прогнозировании route .
  • distanceMeters не учитывается, если его значение равно 0 , что имеет место для прогнозов, находящихся на расстоянии менее 1 метра от указанного origin местоположения.

Клиентские библиотеки, пытающиеся прочитать поле distanceMeters из проанализированного объекта, вернут поле со значением 0 Чтобы не вводить пользователей в заблуждение, не отображайте им нулевое расстояние.

Попробуйте!

API Explorer позволяет вам делать образцы запросов, чтобы вы могли ознакомиться с API и его параметрами.

  1. Выберите значок API api на правой стороне страницы.

  2. При желании отредактируйте параметры запроса.

  3. Нажмите кнопку «Выполнить» . В диалоговом окне выберите учётную запись, которую вы хотите использовать для отправки запроса.

  4. На панели обозревателя API выберите значок полноэкранного режима, чтобы развернуть окно обозревателя API.