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

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

Введение

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

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

Ответ от Autocomplete (New) может содержать два типа прогнозов:

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

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

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

Ответ также может содержать список прогнозов запроса , которые соответствуют строке поиска и области поиска, например, "Sicilian Pizza & Pasta". Каждое прогнозирование запроса в ответе включает text поле, содержащее рекомендуемую строку поиска текста. Используйте эту строку в качестве входных данных для Text Search (New) , чтобы выполнить более подробный поиск.

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

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

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

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

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

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

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

Параметр

Описание

input *

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

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

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

includedPrimaryTypes

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

includePureServiceAreaBusinesses

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

includeQueryPredictions

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

includedRegionCodes

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

inputOffset

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

languageCode

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

locationBias

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

locationRestriction

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

origin

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

regionCode

Код региона, используемый для форматирования ответа и предложений по смещению (например, «uk», «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-заголовок 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 , что означает, что ответ включает только прогнозы места.

  • включеныRegionCodes

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

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

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

  • вводСмещение

    Смещение символа 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 и высокой точек. Область просмотра считается замкнутой областью, то есть она включает ее границу. Границы широты должны находиться в диапазоне от -90 до 90 градусов включительно, а границы долготы должны находиться в диапазоне от -180 до 180 градусов включительно:

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

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

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

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

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

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

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

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

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

  • sessionToken

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

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

Параметры автозаполнения (новые) могут по-разному влиять на результаты поиска. В следующей таблице приведены рекомендации по использованию параметров на основе предполагаемого результата.
Параметр Рекомендации по использованию
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 для ограничения поиска прямоугольным Viewport . Следующий пример ограничивает запрос центром Сан-Франциско:

  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 для ограничения поиска прямоугольным Viewport . Следующий пример ограничивает запрос центром Сан-Франциско:

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

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

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

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

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

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

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

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

Запросить прогнозы запросов

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

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

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

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

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

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

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

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

Расстояние, отсутствующее в ответе

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

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

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

Попробуйте!

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

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

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

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

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