Автозаполнение (новинка) — это веб-служба, которая возвращает прогнозы мест и прогнозы запросов в ответ на HTTP-запрос. В запросе укажите текстовую строку поиска и географические границы, контролирующие область поиска.
Автозаполнение (новое) может сопоставлять полные слова и подстроки входных данных, разрешая названия мест, адреса и коды плюсов . Таким образом, приложения могут отправлять запросы по мере ввода пользователем, чтобы оперативно предоставлять прогнозы по местоположению и запросам.
Ответ от автозаполнения (новый) может содержать два типа прогнозов:
- Подсказки мест : места, такие как предприятия, адреса и достопримечательности, на основе указанной входной текстовой строки и области поиска. Подсказки мест возвращаются по умолчанию.
- Прогнозы запроса : строки запроса, соответствующие входной текстовой строке и области поиска. Прогнозы запроса не возвращаются по умолчанию. Используйте параметр запроса
includeQueryPredictions
, чтобы добавить прогнозы запроса в ответ.
Например, вы вызываете автозаполнение (новый), используя в качестве входных данных строку, содержащую частичный пользовательский ввод «Сицилийская пицца», с областью поиска, ограниченной Сан-Франциско, Калифорния. Затем ответ содержит список подсказок мест , соответствующих строке поиска и области поиска, например ресторан под названием «Sicilian Pizza Kitchen», а также подробную информацию об этом месте.
Возвращенные прогнозы мест предназначены для представления пользователю, чтобы помочь ему выбрать предполагаемое место. Вы можете сделать запрос сведений о месте (новое), чтобы получить дополнительную информацию о любом из возвращенных прогнозов мест.
Ответ также может содержать список подсказок запроса , соответствующих строке поиска и области поиска, например «Сицилийская пицца и паста». Каждый прогноз запроса в ответе включает text
поле, содержащее рекомендуемую строку текстового поиска. Используйте эту строку в качестве входных данных для текстового поиска (новое), чтобы выполнить более подробный поиск.
Обозреватель API позволяет вам делать запросы в реальном времени, чтобы вы могли ознакомиться с API и опциями 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
Поддерживаемые параметры
Параметр | Описание |
---|---|
| Текстовая строка для поиска (полные слова, подстроки, географические названия, адреса и коды). |
| Список, разделенный запятыми, указывающий, какие поля возвращать в ответе. |
Ограничивает результаты местами, соответствующими одному из пяти указанных основных типов. | |
Если это правда, включает предприятия без физического местоположения (предприятия в зоне обслуживания). По умолчанию ложь. | |
Если это правда, в ответ включается как предсказание места, так и запрос. По умолчанию ложь. | |
Массив, содержащий до 15 двухсимвольных кодов стран, по которым можно ограничить результаты. | |
Отсчитываемое от нуля смещение символов Юникода для позиции курсора во входной строке, влияющее на прогнозы. По умолчанию используется входная длина. | |
Предпочтительный язык (код IETF BCP-47) для результатов. По умолчанию заголовок Accept-Language или «en». | |
Указывает область (круг или прямоугольник), к которой будут смещаться результаты поиска, позволяя получать результаты за пределами этой области. Невозможно использовать с locationRestriction. | |
Указывает область (круг или прямоугольник), внутри которой следует ограничить результаты поиска. Результаты за пределами этой области исключаются. Невозможно использовать с locationBias. | |
Исходная точка (широта, долгота), используемая для расчета расстояния по прямой (distanceMeters) до прогнозируемых пунктов назначения. | |
Код региона, используемый для форматирования ответов и предложений по предвзятости (например, «uk», «fr»). | |
Созданная пользователем строка для группировки вызовов автозаполнения в сеанс для целей выставления счетов. |
Об ответе
Автозаполнение (новое) возвращает объект 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 }] }, ... } ...] }
Обязательные параметры
вход
Текстовая строка, по которой осуществляется поиск. Укажите полные слова и подстроки, географические названия, адреса и плюсовые коды . Служба автозаполнения (новая) возвращает совпадения кандидатов на основе этой строки и упорядочивает результаты на основе их предполагаемой релевантности.
Дополнительные параметры
Маска поля
Укажите список полей, которые будут возвращены в ответе, создав маску поля ответа . Передайте маску поля ответа методу, используя 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: *
включенные первичные типы
Место может иметь только один основной тип из типов, перечисленных в Таблице 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
, что означает, что ответ включает только прогнозы мест.включенные коды регионов
Включайте результаты только из списка указанных регионов, заданного в виде массива, содержащего до 15 двухсимвольных значений ccTLD («домен верхнего уровня») . Если этот параметр опущен, к ответу не применяются никакие ограничения. Например, чтобы ограничить регионы Германией и Францией:
"includedRegionCodes": ["de", "fr"]
Если вы укажете и
locationRestriction
, иincludedRegionCodes
, результаты будут расположены в области пересечения двух настроек.inputOffset
Смещение символов Юникода, отсчитываемое от нуля, указывающее позицию курсора во
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
или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, за некоторыми заметными исключениями. Например, нДВУ Соединенного Королевства — «uk» (.co.uk), а его код ISO 3166-1 — «gb» (технически для организации «Соединенное Королевство Великобритании и Северной Ирландии»).
Предложения также являются предвзятыми в зависимости от кодов регионов. Google рекомендует устанавливать
regionCode
в соответствии с региональными предпочтениями пользователя.Если вы укажете неверный код региона, API вернет ошибку
INVALID_ARGUMENT
. Параметр может повлиять на результаты в соответствии с действующим законодательством.сессионный токен
Токены сеанса — это созданные пользователем строки, которые отслеживают вызовы автозаполнения (новые) как «сеансы». Автозаполнение (новое) использует токены сеанса для группировки этапов запроса и выбора пользовательского поиска с автозаполнением в отдельный сеанс для целей выставления счетов. Дополнительные сведения см. в разделе Токены сеанса .
Выберите параметры для смещения результатов
Параметры автозаполнения (новые) могут по-разному влиять на результаты поиска. В следующей таблице представлены рекомендации по использованию параметров в зависимости от предполагаемого результата.Параметр | Рекомендации по использованию |
---|---|
regionBias | Устанавливается в соответствии с региональными предпочтениями пользователя. |
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
, чтобы указать до пяти значений типа из Table A , Table B , only (regions)
или only (cities)
. Для включения в ответ место должно соответствовать одному из указанных значений основного типа.
В следующем примере вы указываете input
строку «Soccer» и используете параметр 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
, Autocomplete (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 позволяет вам создавать образцы запросов, чтобы вы могли ознакомиться с API и опциями API.
Выберите значок API API в правой части страницы.
При желании отредактируйте параметры запроса.
Нажмите кнопку «Выполнить» . В диалоговом окне выберите учетную запись, которую вы хотите использовать для отправки запроса.
На панели «Обозреватель API» выберите полноэкранный значок, чтобы развернуть окно Обозревателя API.
Автозаполнение (новинка) — это веб-служба, которая возвращает прогнозы мест и прогнозы запросов в ответ на HTTP-запрос. В запросе укажите текстовую строку поиска и географические границы, контролирующие область поиска.
Автозаполнение (новое) может сопоставлять полные слова и подстроки входных данных, разрешая названия мест, адреса и коды плюсов . Таким образом, приложения могут отправлять запросы по мере ввода пользователем, чтобы оперативно предоставлять прогнозы по местоположению и запросам.
Ответ от автозаполнения (новый) может содержать два типа прогнозов:
- Подсказки мест : места, такие как предприятия, адреса и достопримечательности, на основе указанной входной текстовой строки и области поиска. Подсказки мест возвращаются по умолчанию.
- Прогнозы запроса : строки запроса, соответствующие входной текстовой строке и области поиска. Прогнозы запроса не возвращаются по умолчанию. Используйте параметр запроса
includeQueryPredictions
, чтобы добавить прогнозы запроса в ответ.
Например, вы вызываете автозаполнение (новый), используя в качестве входных данных строку, содержащую частичный пользовательский ввод «Сицилийская пицца», с областью поиска, ограниченной Сан-Франциско, Калифорния. Затем ответ содержит список подсказок мест , соответствующих строке поиска и области поиска, например ресторан под названием «Sicilian Pizza Kitchen», а также подробную информацию об этом месте.
Возвращенные прогнозы мест предназначены для представления пользователю, чтобы помочь ему выбрать предполагаемое место. Вы можете сделать запрос сведений о месте (новое), чтобы получить дополнительную информацию о любом из возвращенных прогнозов мест.
Ответ также может содержать список подсказок запроса , соответствующих строке поиска и области поиска, например «Сицилийская пицца и паста». Каждый прогноз запроса в ответе включает text
поле, содержащее рекомендуемую строку текстового поиска. Используйте эту строку в качестве входных данных для текстового поиска (новое), чтобы выполнить более подробный поиск.
Обозреватель API позволяет вам делать запросы в реальном времени, чтобы вы могли ознакомиться с API и опциями 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
Поддерживаемые параметры
Параметр | Описание |
---|---|
| Текстовая строка для поиска (полные слова, подстроки, географические названия, адреса и коды). |
| Список, разделенный запятыми, указывающий, какие поля возвращать в ответе. |
Ограничивает результаты местами, соответствующими одному из пяти указанных основных типов. | |
Если это правда, включает предприятия без физического местоположения (предприятия в зоне обслуживания). По умолчанию ложь. | |
Если это правда, в ответ включается как предсказание места, так и запрос. По умолчанию ложь. | |
Массив, содержащий до 15 двухсимвольных кодов стран, по которым можно ограничить результаты. | |
Отсчитываемое от нуля смещение символов Юникода для позиции курсора во входной строке, влияющее на прогнозы. По умолчанию используется входная длина. | |
Предпочтительный язык (код IETF BCP-47) для результатов. По умолчанию заголовок Accept-Language или «en». | |
Указывает область (круг или прямоугольник), к которой будут смещаться результаты поиска, позволяя получать результаты за пределами этой области. Невозможно использовать с locationRestriction. | |
Указывает область (круг или прямоугольник), внутри которой следует ограничить результаты поиска. Результаты за пределами этой области исключаются. Невозможно использовать с locationBias. | |
Исходная точка (широта, долгота), используемая для расчета расстояния по прямой (distanceMeters) до прогнозируемых пунктов назначения. | |
Код региона, используемый для форматирования ответов и предложений по предвзятости (например, «uk», «fr»). | |
Созданная пользователем строка для группировки вызовов автозаполнения в сеанс для целей выставления счетов. |
Об ответе
Автозаполнение (новое) возвращает объект 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 }] }, ... } ...] }
Обязательные параметры
вход
Текстовая строка, по которой осуществляется поиск. Укажите полные слова и подстроки, географические названия, адреса и плюсовые коды . Служба автозаполнения (новая) возвращает совпадения кандидатов на основе этой строки и упорядочивает результаты на основе их предполагаемой релевантности.
Дополнительные параметры
Маска поля
Укажите список полей, которые будут возвращены в ответе, создав маску поля ответа . Передайте маску поля ответа методу, используя 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: *
включенные первичные типы
Место может иметь только один основной тип из типов, перечисленных в Таблице 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
, что означает, что ответ включает только прогнозы мест.включенные коды регионов
Включайте результаты только из списка указанных регионов, заданного в виде массива, содержащего до 15 двухсимвольных значений ccTLD («домен верхнего уровня») . Если этот параметр опущен, к ответу не применяются никакие ограничения. Например, чтобы ограничить регионы Германией и Францией:
"includedRegionCodes": ["de", "fr"]
Если вы укажете и
locationRestriction
, иincludedRegionCodes
, результаты будут расположены в области пересечения двух настроек.inputOffset
Смещение символов Юникода, отсчитываемое от нуля, указывающее позицию курсора во
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
или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 в Великобритании-«Великобритания» (.co.uk), в то время как его ISO 3166-1-«ГБ» (технически для сущности «Соединенное Королевство Великобритании и Северная Ирландия»).
Предложения также предвзяты на основе кодов региона. Google рекомендует установить
regionCode
в соответствии с региональными предпочтениями пользователя.Если вы указываете неверный код региона, API возвращает ошибку
INVALID_ARGUMENT
. Параметр может повлиять на результаты на основе применимого закона.SessionToken
Токены сеансов-это сгенерированные пользователем строки, которые отслеживают автоматические (новые) вызовы как «сеансы». AutoComplete (New) использует токены сеансов для сгруппирования этапов запросов и выбора пользователя, автозаполненного поиском в дискретный сеанс для выставления счетов. Для получения дополнительной информации см. Сессионные токены .
Выберите параметры для смещения результатов
Автозаполняющие (новые) параметры могут по -разному влиять на результаты поиска. В следующей таблице представлены рекомендации для использования параметров на основе предполагаемого результата.Параметр | Рекомендация об использовании |
---|---|
regionBias | Установить в соответствии с региональными предпочтениями пользователя. |
includedRegionCodes | Установить для ограничения результатов в список указанных регионов. |
locationBias | Используйте, когда результаты предпочтительнее в регионе или вокруг него . Если это применимо, определите регион как просмотр карты, на которую рассматривает пользователь. |
locationRestriction | Используйте только тогда, когда не следует возвращать результаты за пределами региона. |
origin | Используйте, когда предназначено прямое расстояние до каждого прогноза. |
Автозаполнение (новые) примеры
Ограничить поиск в область, используя местоположение
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" ] } }, /.../ ] }
Использование включено pprimarytypes
Используйте параметр 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
, AutoComplete (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
. Чтобы избежать вводящих в заблуждение пользователей, не отображайте нулевое расстояние от пользователей.
Попробуйте!
APIS Explorer позволяет выполнять образцы запросов, чтобы вы могли познакомиться с параметрами API и API.
Выберите API значка API в правой стороне страницы.
При желании отредактировать параметры запроса.
Выберите кнопку «Выполнить» . В диалоговом окне выберите учетную запись, которую вы хотите использовать для выполнения запроса.
На панели APIS Explorer выберите полноэкранный значок полноэкранного экрана, чтобы расширить окно APIS Explorer.
AutoComplete (New) - это веб -сервис, который возвращает предсказания и прогнозы запросов в ответ на HTTP -запрос. В запросе укажите строку текстового поиска и географические границы, которые управляют областью поиска.
Автозаполнение (новое) может соответствовать полным словам и подстрокам ввода, разрешения имен мест, адресов и плюс кодов . Поэтому приложения могут отправлять запросы в качестве типов пользователей, чтобы предоставить предсказания на лету и запросы.
Ответ от автозаполнения (новый) может содержать два типа прогнозов:
- Размещайте прогнозы : такие места, как предприятия, адреса и интересующие точки, на основе указанной строки входного текста и области поиска. Размещение предсказания возвращаются по умолчанию.
- Прогнозы запроса : строки запроса, соответствующие строке текста ввода и области поиска. Прогнозы запроса не возвращаются по умолчанию. Используйте параметр запроса
includeQueryPredictions
, чтобы добавить прогнозы запросов в ответ.
Например, вы называете автозаполнение (новое), используя входную строку, которая содержит частичный пользовательский ввод, «Сицилиан Пиз», с областью поиска, ограниченной Сан -Франциско, Калифорния. Затем ответ содержит список предсказаний места , которые соответствуют поисковой строке и зоне поиска, такие как ресторан под названием «Сицилийская кухня пицца», а также подробности о месте.
Пользовательские прогнозы , которые представлены для того, чтобы помочь им, чтобы помочь им в выборе предполагаемого места. Вы можете сделать запрос информации о местах (новый) , чтобы получить больше информации о любом из возвращенных прогнозов места.
Ответ также может содержать список прогнозов запросов , которые соответствуют строке поиска и области поиска, таких как «Сицилийская пицца и макароны». Каждый прогноз запроса в ответе включает в себя text
поле, содержащее рекомендуемую строку поиска текста. Используйте эту строку в качестве ввода в текстовый поиск (новый), чтобы выполнить более подробный поиск.
APIS Explorer позволяет вам делать живые запросы, чтобы вы могли познакомиться с API и параметрами API:
Автозаполнение (новые) запросы
Запрос с автозаполнением (новый) - это запрос на сообщение HTTP на 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
Поддерживаемые параметры
Параметр | Описание |
---|---|
| Текстовая строка для поиска (полные слова, подстроки, имена размещения, адреса, а также коды). |
| Список, разделенный запятыми, указывающий, какие поля вернуть в ответ. |
Ограничивает результаты местами, соответствующими одним из пяти указанных первичных типов. | |
Если это правда, включает в себя предприятия без физического местоположения (предприятия по обслуживанию). По умолчанию ложно. | |
Если это правда, включает в себя как места, так и прогнозы запросов в ответ. По умолчанию ложно. | |
Массив до 15 кодов страны с двумя символами, чтобы ограничить результаты. | |
Основное смещение unicode unicode ar-arse в входной строке, влияющая на прогнозы. По умолчанию длину ввода. | |
Предпочтительный язык (код IETF BCP-47) для результатов. По умолчанию принять заголовок или «en». | |
Определяет область (кружок или прямоугольник), чтобы найти результаты поиска, позволяя результатам за пределами области. Не может использоваться с местоположением. | |
Определяет область (круг или прямоугольник), чтобы ограничить результаты поиска внутри. Результаты за пределами этой области исключены. Нельзя использовать с местоположением. | |
Точка происхождения (LAT, Long) используется для расчета прямолинейного расстояния (DistanceMeters) для прогнозируемых пунктов назначения. | |
Код региона, используемый для форматирования предложений ответа и смещения (например, «Великобритания», «FR»). | |
Пользовательская строка для группы автозаполненных вызовов в сеанс для выставления счетов. |
О ответе
AutoComplete (New) возвращает объект 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 Header
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: *
Включено pprimarytypes
Место может иметь только один основной тип из типов, перечисленных в таблице A или в таблице B. Например, основным типом может быть
"mexican_restaurant"
или"steak_house"
.По умолчанию API возвращает все места на основе
input
параметра, независимо от значения первичного типа, связанного с этим местом. Ограничьте результаты определенного первичного типа или первичных типов путем передачи параметраincludedPrimaryTypes
.Используйте этот параметр, чтобы указать до пяти значений типа из таблицы A или таблицы B. Место должно соответствовать одному из указанных значений первичного типа, которое будет включено в ответ.
Этот параметр может также включать, вместо этого один из
(regions)
или(cities)
.(regions)
типа фильтры для сбора для областей или подразделений, таких как окрестности и почтовые коды. Коллекционные фильтры типа(cities)
для мест, которые Google идентифицирует как город.Запрос отклонен ошибкой
INVALID_REQUEST
, если:- Указано более пяти типов.
- Любой тип указан в дополнение к
(cities)
или(regions)
. - Указаны любые непризнанные типы.
includepureserviceareabusinesses
Если установить на
true
, ответ включает в себя предприятия, которые посещают или доставляют клиентам напрямую, но не имеют физического бизнеса. Если установлено наfalse
, API возвращает только предприятия с физическим бизнесом.Включите querypredictions
Если
true
, ответ включает в себя как места, так и прогнозы запроса. Значение по умолчанию являетсяfalse
, то есть ответ только включает в себя предсказания места.Включены региональные коды
Только включают результаты из списка указанных областей, указанных как массив до 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
илиlocationRestriction
в виде прямоугольного просмотра или в качестве круга .Круг определяется центральной точкой и радиусом в метрах. Радиус должен быть от 0,0 до 50000,0, включительно. Значение по умолчанию составляет 0,0. Для
locationRestriction
вы должны установить радиус до значения, превышающего 0,0. В противном случае запрос не возвращает результатов.Например:
"locationBias": { "circle": { "center": { "latitude": 37.7937, "longitude": -122.3965 }, "radius": 500.0 } }
Прямоугольник представляет собой широту длительного просмотра, представленный как два диагонали напротив
low
и высоких точек. Viewport считается закрытой областью, что означает, что он включает в себя свою границу. Границы широты должны варьироваться от -90 до 90 градусов включено, а границы долготы должны варьироваться от -180 до 180 градусов включено:- Если
low
=high
, топорт Views состоит из этой единственной точки. - Если
low.longitude
>high.longitude
. - Если
low.longitude
= -180 градусов иhigh.longitude
. - Если
low.longitude
= 180 градусов иhigh.longitude
= -180 градусов, диапазон долготы пуст.
Как
low
, так иhigh
должен быть заполнен, а представленная коробка не может быть пустой. Пустой просмотр приводит к ошибке.Например, этот вид VIELE полностью прилагает Нью -Йорк:
"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 в Великобритании-«Великобритания» (.co.uk), в то время как его ISO 3166-1-«ГБ» (технически для сущности «Соединенное Королевство Великобритании и Северная Ирландия»).
Предложения также предвзяты на основе кодов региона. Google рекомендует установить
regionCode
в соответствии с региональными предпочтениями пользователя.Если вы указываете неверный код региона, API возвращает ошибку
INVALID_ARGUMENT
. Параметр может повлиять на результаты на основе применимого закона.SessionToken
Токены сеансов-это сгенерированные пользователем строки, которые отслеживают автоматические (новые) вызовы как «сеансы». AutoComplete (New) использует токены сеансов для сгруппирования этапов запросов и выбора пользователя, автозаполненного поиском в дискретный сеанс для выставления счетов. Для получения дополнительной информации см. Сессионные токены .
Выберите параметры для смещения результатов
Автозаполняющие (новые) параметры могут по -разному влиять на результаты поиска. В следующей таблице представлены рекомендации для использования параметров на основе предполагаемого результата.Параметр | Рекомендация об использовании |
---|---|
regionBias | Установить в соответствии с региональными предпочтениями пользователя. |
includedRegionCodes | Установить для ограничения результатов в список указанных регионов. |
locationBias | Используйте, когда результаты предпочтительнее в регионе или вокруг него . Если это применимо, определите регион как просмотр карты, на которую рассматривает пользователь. |
locationRestriction | Используйте только тогда, когда не следует возвращать результаты за пределами региона. |
origin | Используйте, когда предназначено прямое расстояние до каждого прогноза. |
Автозаполнение (новые) примеры
Ограничить поиск в область, используя местоположение
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" ] } }, /.../ ] }
Использование включено pprimarytypes
Используйте параметр 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
, AutoComplete (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
. Чтобы избежать вводящих в заблуждение пользователей, не отображайте нулевое расстояние от пользователей.
Попробуйте!
APIS Explorer позволяет выполнять образцы запросов, чтобы вы могли познакомиться с параметрами API и API.
Выберите API значка API в правой стороне страницы.
При желании отредактировать параметры запроса.
Выберите кнопку «Выполнить» . В диалоговом окне выберите учетную запись, которую вы хотите использовать для выполнения запроса.
На панели APIS Explorer выберите полноэкранный значок полноэкранного экрана, чтобы расширить окно APIS Explorer.
AutoComplete (New) - это веб -сервис, который возвращает предсказания и прогнозы запросов в ответ на HTTP -запрос. В запросе укажите строку текстового поиска и географические границы, которые управляют областью поиска.
Автозаполнение (новое) может соответствовать полным словам и подстрокам ввода, разрешения имен мест, адресов и плюс кодов . Поэтому приложения могут отправлять запросы в качестве типов пользователей, чтобы предоставить предсказания на лету и запросы.
Ответ от автозаполнения (новый) может содержать два типа прогнозов:
- Размещайте прогнозы : такие места, как предприятия, адреса и интересующие точки, на основе указанной строки входного текста и области поиска. Размещение предсказания возвращаются по умолчанию.
- Прогнозы запроса : строки запроса, соответствующие строке текста ввода и области поиска. Прогнозы запроса не возвращаются по умолчанию. Используйте параметр запроса
includeQueryPredictions
, чтобы добавить прогнозы запросов в ответ.
Например, вы называете автозаполнение (новое), используя входную строку, которая содержит частичный пользовательский ввод, «Сицилиан Пиз», с областью поиска, ограниченной Сан -Франциско, Калифорния. Затем ответ содержит список предсказаний места , которые соответствуют поисковой строке и зоне поиска, такие как ресторан под названием «Сицилийская кухня пицца», а также подробности о месте.
Пользовательские прогнозы , которые представлены для того, чтобы помочь им, чтобы помочь им в выборе предполагаемого места. Вы можете сделать запрос информации о местах (новый) , чтобы получить больше информации о любом из возвращенных прогнозов места.
Ответ также может содержать список прогнозов запросов , которые соответствуют строке поиска и области поиска, таких как «Сицилийская пицца и макароны». Каждый прогноз запроса в ответе включает в себя text
поле, содержащее рекомендуемую строку поиска текста. Используйте эту строку в качестве ввода в текстовый поиск (новый), чтобы выполнить более подробный поиск.
APIS Explorer позволяет вам делать живые запросы, чтобы вы могли познакомиться с API и параметрами API:
Автозаполнение (новые) запросы
Запрос с автозаполнением (новый) - это запрос на сообщение HTTP на 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
Поддерживаемые параметры
Параметр | Описание |
---|---|
| Текстовая строка для поиска (полные слова, подстроки, имена размещения, адреса, а также коды). |
| Список, разделенный запятыми, указывающий, какие поля вернуть в ответ. |
Ограничивает результаты местами, соответствующими одним из пяти указанных первичных типов. | |
Если это правда, включает в себя предприятия без физического местоположения (предприятия по обслуживанию). По умолчанию ложно. | |
Если это правда, включает в себя как места, так и прогнозы запросов в ответ. По умолчанию ложно. | |
Массив до 15 кодов страны с двумя символами, чтобы ограничить результаты. | |
Основное смещение unicode unicode ar-arse в входной строке, влияющая на прогнозы. По умолчанию длину ввода. | |
Предпочтительный язык (код IETF BCP-47) для результатов. По умолчанию принять заголовок или «en». | |
Определяет область (кружок или прямоугольник), чтобы найти результаты поиска, позволяя результатам за пределами области. Не может использоваться с местоположением. | |
Определяет область (круг или прямоугольник), чтобы ограничить результаты поиска внутри. Результаты за пределами этой области исключены. Нельзя использовать с местоположением. | |
Точка происхождения (LAT, Long) используется для расчета прямолинейного расстояния (DistanceMeters) для прогнозируемых пунктов назначения. | |
Код региона, используемый для форматирования предложений ответа и смещения (например, «Великобритания», «FR»). | |
Пользовательская строка для группы автозаполненных вызовов в сеанс для выставления счетов. |
О ответе
AutoComplete (New) возвращает объект 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 Header
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: *
Включено pprimarytypes
Место может иметь только один основной тип из типов, перечисленных в таблице A или в таблице B. Например, основным типом может быть
"mexican_restaurant"
или"steak_house"
.По умолчанию API возвращает все места на основе
input
параметра, независимо от значения первичного типа, связанного с этим местом. Ограничьте результаты определенного первичного типа или первичных типов путем передачи параметраincludedPrimaryTypes
.Используйте этот параметр, чтобы указать до пяти значений типа из таблицы A или таблицы B. Место должно соответствовать одному из указанных значений первичного типа, которое будет включено в ответ.
Этот параметр может также включать, вместо этого один из
(regions)
или(cities)
.(regions)
типа фильтры для сбора для областей или подразделений, таких как окрестности и почтовые коды. Коллекционные фильтры типа(cities)
для мест, которые Google идентифицирует как город.Запрос отклонен ошибкой
INVALID_REQUEST
, если:- Указано более пяти типов.
- Любой тип указан в дополнение к
(cities)
или(regions)
. - Указаны любые непризнанные типы.
includePureServiceAreaBusinesses
If set to
true
, the response includes businesses that visit or deliver to customers directly, but don't have a physical business location. If set tofalse
, the API returns only businesses with a physical business location.includeQueryPredictions
If
true
, the response includes both place and query predictions. The default value isfalse
, meaning the response only includes place predictions.includedRegionCodes
Only include results from the list of specified regions, specified as an array of up to 15 ccTLD ("top-level domain") two-character values. If omitted, no restrictions are applied to the response. For example, to limit the regions to Germany and France:
"includedRegionCodes": ["de", "fr"]
If you specify both
locationRestriction
andincludedRegionCodes
, the results are located in the area of intersection of the two settings.inputOffset
The zero-based Unicode character offset indicating the cursor position in
input
. The cursor position can influence what predictions are returned. If empty, it defaults to the length ofinput
.languageCode
The preferred language in which to return results. The results might be in mixed languages if the language used in
input
is different from the value specified bylanguageCode
, or if the returned place does not have a translation from the local language tolanguageCode
.- You must use IETF BCP-47 language codes to specify the preferred language.
- If
languageCode
is not supplied, the API uses the value specified in theAccept-Language
header. If neither is specified, the default isen
. If you specify an invalid language code, the API returns anINVALID_ARGUMENT
error. - The preferred language has a small influence on the set of results that the API chooses to return, and the order in which they are returned. This also affects the API's ability to correct spelling errors.
- The API attempts to provide a street address that is readable for both the user and local population, while at the same time reflecting the user input. Place predictions are formatted differently depending on the user input in each request.
- Matching terms in the
input
parameter are chosen first, using names aligned with the language preference indicated by thelanguageCode
parameter when available, while otherwise using names that best match the user input. - Street addresses are formatted in the local language, in a script readable by the user when possible, only after matching terms have been picked to match the terms in the
input
parameter. - All other addresses are returned in the preferred language, after matching terms have been chosen to match the terms in the
input
parameter. If a name is not available in the preferred language, the API uses the closest match.
- Matching terms in the
locationBias or locationRestriction
You can specify
locationBias
orlocationRestriction
, but not both, to define the search area. Think oflocationRestriction
as specifying the region which the results must be within, andlocationBias
as specifying the region that the results must be near but can be outside of the area.locationBias
Specifies an area to search. This location serves as a bias which means results around the specified location can be returned, including results outside the specified area.
locationRestriction
Specifies an area to search. Results outside the specified area are not returned.
Specify the
locationBias
orlocationRestriction
region as a rectangular Viewport or as a circle .A circle is defined by center point and radius in meters. The radius must be between 0.0 and 50000.0, inclusive. The default value is 0.0. For
locationRestriction
, you must set the radius to a value greater than 0.0. Otherwise, the request returns no results.Например:
"locationBias": { "circle": { "center": { "latitude": 37.7937, "longitude": -122.3965 }, "radius": 500.0 } }
A rectangle is a latitude-longitude viewport, represented as two diagonally opposite
low
and high points. A viewport is considered a closed region, meaning it includes its boundary. The latitude bounds must range between -90 to 90 degrees inclusive, and the longitude bounds must range between -180 to 180 degrees inclusive:- If
low
=high
, the viewport consists of that single point. - If
low.longitude
>high.longitude
, the longitude range is inverted (the viewport crosses the 180 degree longitude line). - If
low.longitude
= -180 degrees andhigh.longitude
= 180 degrees, the viewport includes all longitudes. - If
low.longitude
= 180 degrees andhigh.longitude
= -180 degrees, the longitude range is empty.
Both
low
andhigh
must be populated, and the represented box cannot be empty. An empty viewport results in an error.For example, this viewport fully encloses New York City:
"locationBias": { "rectangle": { "low": { "latitude": 40.477398, "longitude": -74.259087 }, "high": { "latitude": 40.91618, "longitude": -73.70018 } } }
- If
источник
The origin point from which to calculate straight-line distance to the destination (returned as
distanceMeters
). If this value is omitted, straight-line distance will not be returned. Must be specified as latitude and longitude coordinates:"origin": { "latitude": 40.477398, "longitude": -74.259087 }
regionCode
The region code used to format the response, specified as a ccTLD ("top-level domain") two-character value. Most ccTLD codes are identical to ISO 3166-1 codes, with some notable exceptions. For example, the United Kingdom's ccTLD is "uk" (.co.uk) while its ISO 3166-1 code is "gb" (technically for the entity of "The United Kingdom of Great Britain and Northern Ireland").
Suggestions are also biased based on region codes. Google recommends setting the
regionCode
according to the user's regional preference.If you specify an invalid region code, the API returns an
INVALID_ARGUMENT
error. The parameter can affect results based on applicable law.sessionToken
Session tokens are user-generated strings that track Autocomplete (New) calls as "sessions." Autocomplete (New) uses session tokens to group the query and selection phases of a user autocomplete search into a discrete session for billing purposes. For more information, see Session tokens .
Choose parameters to bias results
Autocomplete (New) parameters can influence search results differently. The following table provides recommendations for parameter usage based on the intended outcome.Параметр | Usage recommendation |
---|---|
regionBias | Set according to user's regional preference. |
includedRegionCodes | Set to limit results to the list of specified regions. |
locationBias | Use when results are preferred in or around a region . If applicable, define the region as the viewport of the map the user is looking at. |
locationRestriction | Use only when results outside of a region shouldn't be returned. |
origin | Use when a straight-line distance to each prediction is intended. |
Autocomplete (New) examples
Restrict search to an area using locationRestriction
locationRestriction
specifies the area to search. Results outside the specified area are not returned. In the following example, you use locationRestriction
to limit the request to a circle 5000 meters in radius centered on San Francisco:
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
All results from within the specified areas are contained in the suggestions
array:
{ "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" ] } }, /.../ ] }
You can also use locationRestriction
to restrict searches to a rectangular Viewport . The following example limits the request to downtown San Francisco:
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
Results are contained in the suggestions
array:
{ "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" ] } } ] }
Bias search to an area using locationBias
With locationBias
, the location serves as a bias which means results around the specified location can be returned, including results outside the specified area. In the following example, you bias the request to downtown San Francisco:
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
The results now contain many more items, including results outside of the 5000 meter radius:
{ "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" ] } }, ... ] }
You can also use locationBias
to restrict searches to a rectangular Viewport . The following example limits the request to downtown San Francisco:
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
Although search results within the rectangular viewport appear in the response, some results are outside of the defined boundaries, due to biasing. Results are also contained within the suggestions
array:
{ "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" ] } }, /.../ ] }
Use includedPrimaryTypes
Use the includedPrimaryTypes
parameter to specify up to five type values from Table A , Table B , or only (regions)
, or only (cities)
. A place must match one of the specified primary type values to be included in the response.
In the following example, you specify an input
string of "Soccer" and use the includedPrimaryTypes
parameter to restrict results to establishments of type "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
If you omit the includedPrimaryTypes
parameter, then the results can include establishments of a type that you do not want, such as "athletic_field"
.
Request query predictions
Query predictions are not returned by default. Use the includeQueryPredictions
request parameter to add query predictions to the response. Например:
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
The suggestions
array now contains both place predictions and query predictions as shown above in About the response . Each query prediction includes the text
field containing a recommended text search string. You can make a Text Search (New) request to get more information about any of the returned query predictions.
Use origin
In this example, include origin
in the request as latitude and longitude coordinates. When you include origin
, Autocomplete (New) includes the distanceMeters
field in the response which contains the straight-line distance from the origin
to the destination. This example sets the origin to the center of San Francisco:
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
The response now includes 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 } } ] }
Distance missing from response
In certain cases, distanceMeters
is missing from the response body, even when origin
is included in the request. This may happen in the following scenarios:
-
distanceMeters
is not included forroute
predictions. -
distanceMeters
is not included when its value is0
, which is the case for predictions that are less than 1 meter away from the providedorigin
location.
Client libraries attempting to read the distanceMeters
field out of a parsed object will return a field with value 0
. To avoid misleading users, don't display a zero distance to users.
Попробуйте!
The APIs Explorer lets you make sample requests so that you can get familiar with the API and the API options.
Select the API icon api on the right side of the page.
Optionally edit the request parameters.
Select the Execute button. In the dialog, choose the account that you want to use to make the request.
In the APIs Explorer panel, select the fullscreen icon fullscreen to expand the APIs Explorer window.