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

Выберите платформу: Android iOS Веб-служба JavaScript

Автозаполнение (новинка) — это веб-служба, которая возвращает прогнозы мест и прогнозы запросов в ответ на 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

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

Параметр

Описание

input *

Текстовая строка для поиска (полные слова, подстроки, географические названия, адреса и коды).

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

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

includedPrimaryTypes

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

includePureServiceAreaBusinesses

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

includeQueryPredictions

Если это правда, в ответ включается как предсказание места, так и запрос. По умолчанию ложь.

includedRegionCodes

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

inputOffset

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

languageCode

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

locationBias

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

locationRestriction

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

origin

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

regionCode

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

sessionToken

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

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

Об ответе

Автозаполнение (новое) возвращает объект JSON в качестве ответа. В ответ:

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

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

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

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

  • вход

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

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

  • Маска поля

    Укажите список полей, которые будут возвращены в ответе, создав маску поля ответа . Передайте маску поля ответа методу, используя 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.

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

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

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

  4. На панели «Обозреватель API» выберите полноэкранный значок, чтобы развернуть окно Обозревателя API.

,
Выберите платформу: Android iOS Веб-служба JavaScript

Автозаполнение (новинка) — это веб-служба, которая возвращает прогнозы мест и прогнозы запросов в ответ на 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

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

Параметр

Описание

input *

Текстовая строка для поиска (полные слова, подстроки, географические названия, адреса и коды).

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

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

includedPrimaryTypes

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

includePureServiceAreaBusinesses

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

includeQueryPredictions

Если это правда, в ответ включается как предсказание места, так и запрос. По умолчанию ложь.

includedRegionCodes

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

inputOffset

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

languageCode

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

locationBias

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

locationRestriction

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

origin

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

regionCode

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

sessionToken

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

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

Об ответе

Автозаполнение (новое) возвращает объект JSON в качестве ответа. В ответ:

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

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

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

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

  • вход

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

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

  • Маска поля

    Укажите список полей, которые будут возвращены в ответе, создав маску поля ответа . Передайте маску поля ответа методу, используя 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.

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

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

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

  4. На панели APIS Explorer выберите полноэкранный значок полноэкранного экрана, чтобы расширить окно APIS Explorer.

,
Выбрать платформу: веб -сервис Android iOS JavaScript

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

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

Параметр

Описание

input *

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

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

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

includedPrimaryTypes

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

includePureServiceAreaBusinesses

Если это правда, включает в себя предприятия без физического местоположения (предприятия по обслуживанию). По умолчанию ложно.

includeQueryPredictions

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

includedRegionCodes

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

inputOffset

Основное смещение unicode unicode ar-arse в входной строке, влияющая на прогнозы. По умолчанию длину ввода.

languageCode

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

locationBias

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

locationRestriction

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

origin

Точка происхождения (LAT, Long) используется для расчета прямолинейного расстояния (DistanceMeters) для прогнозируемых пунктов назначения.

regionCode

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

sessionToken

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

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

О ответе

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.

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

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

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

  4. На панели APIS Explorer выберите полноэкранный значок полноэкранного экрана, чтобы расширить окно APIS Explorer.

,
Выбрать платформу: веб -сервис Android iOS JavaScript

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

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

Параметр

Описание

input *

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

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

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

includedPrimaryTypes

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

includePureServiceAreaBusinesses

Если это правда, включает в себя предприятия без физического местоположения (предприятия по обслуживанию). По умолчанию ложно.

includeQueryPredictions

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

includedRegionCodes

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

inputOffset

Основное смещение unicode unicode ar-arse в входной строке, влияющая на прогнозы. По умолчанию длину ввода.

languageCode

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

locationBias

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

locationRestriction

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

origin

Точка происхождения (LAT, Long) используется для расчета прямолинейного расстояния (DistanceMeters) для прогнозируемых пунктов назначения.

regionCode

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

sessionToken

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

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

О ответе

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 to false , the API returns only businesses with a physical business location.

  • includeQueryPredictions

    If true , the response includes both place and query predictions. The default value is false , 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 and includedRegionCodes , 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 of input .

  • 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 by languageCode , or if the returned place does not have a translation from the local language to languageCode .

    • 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 the Accept-Language header. If neither is specified, the default is en . If you specify an invalid language code, the API returns an INVALID_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 the languageCode 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.
  • locationBias or locationRestriction

    You can specify locationBias or locationRestriction , but not both, to define the search area. Think of locationRestriction as specifying the region which the results must be within, and locationBias 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 or locationRestriction 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 and high.longitude = 180 degrees, the viewport includes all longitudes.
      • If low.longitude = 180 degrees and high.longitude = -180 degrees, the longitude range is empty.

      Both low and high 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
          }
        }
      }
  • источник

    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 for route predictions.
  • distanceMeters is not included when its value is 0 , which is the case for predictions that are less than 1 meter away from the provided origin 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.

  1. Select the API icon api on the right side of the page.

  2. Optionally edit the request parameters.

  3. Select the Execute button. In the dialog, choose the account that you want to use to make the request.

  4. In the APIs Explorer panel, select the fullscreen icon fullscreen to expand the APIs Explorer window.