Текстовый поиск (устаревшая версия)

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

Устаревший текстовый поиск (Legacy) возвращает сведения о наборе мест на основе строки, например "пицца в Москве", "обувные магазины в Санкт-Петербурге" или "улица Центральная, 123". Ответ содержит список мест, соответствующих текстовой строке с учетом указанного предпочтительного местоположения.

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

Тип запроса Пример
Слишком много понятий или ограничений, например названия нескольких мест, дорог или городов в одном запросе. "Маркет-стрит Сан-Франциско аэропорт Сан-Хосе"
Элементы почтового адреса, не представленные на Google Картах "C/O John Smith 123 Main Street"
"P.O. Box 13 San Francisco"
Названия компаний, сетей или категорий в сочетании с местоположениями, где эти объекты недоступны. "Tesco рядом с Далласом, Техас"
Неоднозначные запросы, которые можно интерпретировать по-разному. "Charger drop-off"
Исторические названия, которые больше не используются. "Middlesex United Kingdom"
Негеопространственные элементы или намерения "Сколько лодок в гавани Вентура?"
Неофициальные или рекламные названия. "Дженга"
"Хелтер Скелтер"
Координаты широты и долготы "37.422131,-122.084801"

Ответ на поисковый запрос содержит список мест. Чтобы получить подробную информацию о любом из них, можно отправить запрос Place Details.

Запросы текстового поиска (Legacy)

Запрос текстового поиска (Legacy) – это URL с протоколом HTTP следующего вида:

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

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

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

Для инициации запроса поиска места необходимо задать определенные параметры. Параметры разделяются амперсандами (&) в соответствии со стандартом написания URL.

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

  • запрос

    Строка для текстового поиска, например "ресторан" или "улица Центральная, 123". Нужно указать название места, его адрес или категорию учреждения. Если ввести данные другого типа, вы можете получить неправильные результаты или возникнет ошибка. На основе этой строки сервис Google Places возвращает список подходящих мест, упорядоченных по их предполагаемой релевантности.

  • радиус

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

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

    • Автозаполнение: 50 000 метров.
    • Поиск поблизости:
      • с keyword или name – 50 000 метров;
      • без keyword или name
        • До 50 000 метров. Радиус корректируется динамически в зависимости от плотности застройки, независимо от параметра rankby.
        • Если используется параметр rankby=distance, параметр radius не будет принят и приведет к ошибке INVALID_REQUEST.
    • Query Autocomplete: 50 000 метров.
    • Текстовый поиск: 50 000 метров.

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

  • language

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

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

    Точка, вокруг которой нужно получить информацию о местах. Необходимо указать значение latitude,longitude.

    Параметр location может быть переопределен, если query содержит явное местоположение, например Market in Barcelona. Использование кавычек в запросе также может повлиять на вес, присваиваемый location и radius.
  • maxprice

    Ограничивает результаты местами, которые соответствуют указанному диапазону. Значения могут находиться в диапазоне от 0 (наиболее доступные места) до 4 (наиболее дорогие места). Точная сумма, указанная конкретным значением, будет варьироваться от региона к региону.

  • minprice

    Ограничивает результаты местами, которые соответствуют указанному диапазону. Значения могут находиться в диапазоне от 0 (наиболее доступные места) до 4 (наиболее дорогие места). Точная сумма, указанная конкретным значением, будет варьироваться от региона к региону.

  • opennow

    Возвращает только те места, которые открыты в момент отправки запроса. Если в запросе указан этот параметр, то все места, для которых в базе данных Google Places не указаны часы работы, игнорируются.

  • pagetoken

    Возвращает до 20 результатов ранее выполненного поиска. Если задать параметр pagetoken, будет выполнен поиск с теми же параметрами, что и ранее. Все параметры, кроме pagetoken, будут игнорироваться.

  • регион

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

  • тип

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

    • type=hospital|pharmacy|doctor становится type=hospital
    • type=hospital,pharmacy,doctor полностью игнорируется

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

    Примечание. Если добавить и keyword, и type с одинаковым значением (keyword=cafe&type=cafe или keyword=parking&type=parking), может возникнуть ошибка ZERO_RESULTS.

Примеры текстового поиска (устаревшая версия)

Примечание. Чтобы запрос работал в вашем приложении, замените key в этих примерах на собственный ключ API.

Базовый пример

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

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/place/textsearch/json?query=restaurants%20in%20Sydney&key=YOUR_API_KEY'

HTTP

https://maps.googleapis.com/maps/api/place/textsearch/json
  ?query=restaurants%20in%20Sydney
  &key=YOUR_API_KEY

Пример неполного адреса

В следующем примере показан поиск неполного адреса, в данном случае адреса улицы, который не включает город, штат или страну.

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/place/textsearch/json?query=123%20main%20street&key=YOUR_API_KEY'

HTTP

https://maps.googleapis.com/maps/api/place/textsearch/json
  ?query=123%20main%20street
  &key=YOUR_API_KEY

JSON

{
  "html_attributions": [],
  "results":
    [
      {
        "formatted_address": "Main St, Denver, CO 80238, USA",
        "geometry":
          {
            "location": { "lat": 39.782267, "lng": -104.8919341 },
            "viewport":
              {
                "northeast":
                  { "lat": 39.78361682989273, "lng": -104.8905842701073 },
                "southwest":
                  { "lat": 39.78091717010729, "lng": -104.8932839298927 },
              },
          },
        "icon": "https://maps.gstatic.com/mapfiles/place_api/icons/v1/png_71/geocode-71.png",
        "icon_background_color": "#7B9EB0",
        "icon_mask_base_uri": "https://maps.gstatic.com/mapfiles/place_api/icons/v2/generic_pinlet",
        "name": "Main St",
        "place_id": "ChIJIS85_gd7bIcRJIGEPue1cJI",
        "reference": "ChIJIS85_gd7bIcRJIGEPue1cJI",
        "types": ["route"],
      },
    ],
  "status": "OK",
}
    

XML

<?xml version="1.0" encoding="UTF-8"?>
<PlaceSearchResponse>
 <status>OK</status>
 <result>
  <name>Main St</name>
  <type>route</type>
  <formatted_address>Main St, Denver, CO 80238, USA</formatted_address>
  <geometry>
   <location>
    <lat>39.7822670</lat>
    <lng>-104.8919341</lng>
   </location>
   <viewport>
    <southwest>
     <lat>39.7809172</lat>
     <lng>-104.8932839</lng>
    </southwest>
    <northeast>
     <lat>39.7836168</lat>
     <lng>-104.8905843</lng>
    </northeast>
   </viewport>
  </geometry>
  <icon>https://maps.gstatic.com/mapfiles/place_api/icons/v1/png_71/geocode-71.png</icon>
  <reference>ChIJIS85_gd7bIcRJIGEPue1cJI</reference>
  <place_id>ChIJIS85_gd7bIcRJIGEPue1cJI</place_id>
  <icon_background_color>#7B9EB0</icon_background_color>
  <icon_mask_base_uri>https://maps.gstatic.com/mapfiles/place_api/icons/v2/generic_pinlet</icon_mask_base_uri>
 </result>
</PlaceSearchResponse>

    

Пример учета местоположения

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

curl

curl -L -X GET 'https://maps.googleapis.com/maps/api/place/textsearch/json?query=123%20main%20street&location=42.3675294%2C-71.186966&radius=10000&key=YOUR_API_KEY'

HTTP

https://maps.googleapis.com/maps/api/place/textsearch/json
  ?location=42.3675294%2C-71.186966
  &query=123%20main%20street
  &radius=10000
  &key=YOUR_API_KEY

JSON

{
  "html_attributions": [],
  "results":
    [
      {
        "formatted_address": "123 Main St, Boston, MA 02110, USA",
        "geometry":
          {
            "location": { "lat": 42.3744917, "lng": -71.0634802 },
            "viewport":
              {
                "northeast":
                  { "lat": 42.37581642989272, "lng": -71.06219107010727 },
                "southwest":
                  { "lat": 42.37311677010727, "lng": -71.06489072989272 },
              },
          },
        "icon": "https://maps.gstatic.com/mapfiles/place_api/icons/v1/png_71/geocode-71.png",
        "icon_background_color": "#7B9EB0",
        "icon_mask_base_uri": "https://maps.gstatic.com/mapfiles/place_api/icons/v2/generic_pinlet",
        "name": "123 Main St",
        "place_id": "ChIJd_ueCe1w44kRD_KFuN5w5nA",
        "plus_code":
          {
            "compound_code": "9WFP+QJ Boston, Massachusetts",
            "global_code": "87JC9WFP+QJ",
          },
        "reference": "ChIJd_ueCe1w44kRD_KFuN5w5nA",
        "types": ["street_address"],
      },
    ],
  "status": "OK",
}
    

XML

<?xml version="1.0" encoding="UTF-8"?>
<PlaceSearchResponse>
 <status>OK</status>
 <result>
  <name>123 Main St</name>
  <type>street_address</type>
  <formatted_address>123 Main St, Boston, MA 02110, USA</formatted_address>
  <geometry>
   <location>
    <lat>42.3744917</lat>
    <lng>-71.0634802</lng>
   </location>
   <viewport>
    <southwest>
     <lat>42.3731168</lat>
     <lng>-71.0648907</lng>
    </southwest>
    <northeast>
     <lat>42.3758164</lat>
     <lng>-71.0621911</lng>
    </northeast>
   </viewport>
  </geometry>
  <icon>https://maps.gstatic.com/mapfiles/place_api/icons/v1/png_71/geocode-71.png</icon>
  <reference>ChIJd_ueCe1w44kRD_KFuN5w5nA</reference>
  <place_id>ChIJd_ueCe1w44kRD_KFuN5w5nA</place_id>
  <plus_code>
   <global_code>87JC9WFP+QJ</global_code>
   <compound_code>9WFP+QJ Boston, Massachusetts</compound_code>
  </plus_code>
  <icon_background_color>#7B9EB0</icon_background_color>
  <icon_mask_base_uri>https://maps.gstatic.com/mapfiles/place_api/icons/v2/generic_pinlet</icon_mask_base_uri>
 </result>
</PlaceSearchResponse>

    

Ответы на запросы текстового поиска (Legacy)

Результаты поиска возвращаются в формате, указанном в параметре output в пути URL запроса.

Ниже приведен пример ответа текстового поиска (устаревшая версия).

JSON

{
  "html_attributions": [],
  "next_page_token": "Aap_uEAHsgFErpxZrytW1mgKsefD327VCf0OgNF9vpXPwTOG6AGhEZpGgMgofSzgCahevXhneCe9M9H24SOuE4ZcaE0ZR01gVykQZ6EoDnlWEQvXBXe6z0sgF5MQo7qBb6uD4VHKDLhgR59Lb86BzTHJzTzbm61OAPvyInZoaQxK8-oEf2PShZT7XRJKoF5nISbwvU_-RomwGDVi27oj0fToIyV-Vj2ftJw8ZUPbdGGCbcDolQyAwj11Dy2aaeK4SGwg2mO5Akxa7fCze2RJ0GCAvXXp7omTFDy_47OXsFgDPfzluc7mEb5VlzlIMZ0eWQ8VeNigtv-XZZG0f3HSo81Yeq3QhXedJ5oNE1XCwyMly3YVgw_h3amOzAOuDigF1pgFnfGyzxD8vr2bfbPTNvA9l7IJ8Q",
  "results":
    [
      {
        "business_status": "OPERATIONAL",
        "formatted_address": "1 Macquarie St, Sydney NSW 2000, Australia",
        "geometry":
          {
            "location": { "lat": -33.8592041, "lng": 151.2132635 },
            "viewport":
              {
                "northeast":
                  { "lat": -33.85786707010728, "lng": 151.2147093298927 },
                "southwest":
                  { "lat": -33.86056672989272, "lng": 151.2120096701072 },
              },
          },
        "icon": "https://maps.gstatic.com/mapfiles/place_api/icons/v1/png_71/restaurant-71.png",
        "icon_background_color": "#FF9E67",
        "icon_mask_base_uri": "https://maps.gstatic.com/mapfiles/place_api/icons/v2/restaurant_pinlet",
        "name": "Aria Restaurant Sydney",
        "opening_hours": { "open_now": false },
        "photos":
          [
            {
              "height": 4032,
              "html_attributions":
                [
                  'Dohyun Kim',
                ],
              "photo_reference": "Aap_uED7B83PoQ1wNgzYcFZEOw1P2DqNjlaqiXxo-r4F_NaR27uV2OiIvijkI6RYyfiiHYo9UqjnZkRtZaNTk4C6Ickh3k3stsSvBU0KfLtFow-oRujSYYChYwiYhVyP27omLzQQjafhJ2N3LJbjcMxSePKXsQzYCqmOLWg0E9mSExMJ4aM",
              "width": 3024,
            },
          ],
        "place_id": "ChIJdxxU1WeuEmsR11c4fswX-Io",
        "plus_code":
          {
            "compound_code": "46R7+88 Sydney, New South Wales, Australia",
            "global_code": "4RRH46R7+88",
          },
        "price_level": 4,
        "rating": 4.5,
        "reference": "ChIJdxxU1WeuEmsR11c4fswX-Io",
        "types": ["restaurant", "point_of_interest", "food", "establishment"],
        "user_ratings_total": 1681,
      },
      {
        "business_status": "OPERATIONAL",
        "formatted_address": "15 Bligh St, Sydney NSW 2000, Australia",
        "geometry":
          {
            "location": { "lat": -33.8651396, "lng": 151.2104533 },
            "viewport":
              {
                "northeast":
                  { "lat": -33.86384167010728, "lng": 151.2118993298927 },
                "southwest":
                  { "lat": -33.86654132989272, "lng": 151.2091996701073 },
              },
          },
        "icon": "https://maps.gstatic.com/mapfiles/place_api/icons/v1/png_71/restaurant-71.png",
        "icon_background_color": "#FF9E67",
        "icon_mask_base_uri": "https://maps.gstatic.com/mapfiles/place_api/icons/v2/restaurant_pinlet",
        "name": "Restaurant Hubert",
        "opening_hours": { "open_now": false },
        "photos":
          [
            {
              "height": 683,
              "html_attributions":
                [
                  'Ashley Hughes',
                ],
              "photo_reference": "Aap_uEB41WOb_Nl8I8py4D6uXoLHzVYtFZZcucYdYAN1FtzXBnAu59xXrxk5tekoktAbklwmHeSFfdnTCWgHRZ1C5Azp9AMCP9GRGV1f2Z1-5kjsVgnYPiq82JoueSUdCSQJFabyL0cagtcGaFKetVi7DmUIHDQknEPCh_cpCbdOMw4Bkq5q",
              "width": 1024,
            },
          ],
        "place_id": "ChIJF5-RdGquEmsR5rN_H74uSqQ",
        "plus_code":
          {
            "compound_code": "46M6+W5 Sydney, New South Wales, Australia",
            "global_code": "4RRH46M6+W5",
          },
        "price_level": 3,
        "rating": 4.6,
        "reference": "ChIJF5-RdGquEmsR5rN_H74uSqQ",
        "types": ["restaurant", "point_of_interest", "food", "establishment"],
        "user_ratings_total": 2393,
      },
      // ...
    ],
  "status": "OK",
}
    

XML

<?xml version="1.0" encoding="UTF-8"?>
<PlaceSearchResponse>
 <status>OK</status>
 <result>
  <name>Aria Restaurant Sydney</name>
  <type>restaurant</type>
  <type>point_of_interest</type>
  <type>food</type>
  <type>establishment</type>
  <formatted_address>1 Macquarie St, Sydney NSW 2000, Australia</formatted_address>
  <geometry>
   <location>
    <lat>-33.8592041</lat>
    <lng>151.2132635</lng>
   </location>
   <viewport>
    <southwest>
     <lat>-33.8605667</lat>
     <lng>151.2120097</lng>
    </southwest>
    <northeast>
     <lat>-33.8578671</lat>
     <lng>151.2147093</lng>
    </northeast>
   </viewport>
  </geometry>
  <rating>4.5</rating>
  <icon>https://maps.gstatic.com/mapfiles/place_api/icons/v1/png_71/restaurant-71.png</icon>
  <reference>ChIJdxxU1WeuEmsR11c4fswX-Io</reference>
  <opening_hours>
   <open_now>false</open_now>
  </opening_hours>
  <photo>
   <photo_reference>Aap_uEDOK3C-umU4a2um8NR1G_b_MNPEG1ogm0PLp49myXaj0AD2aT60YrNlbrwnvg2VBrCmE2kBsuDmwZgXL8V-vU2ToVhNgp3A8zAjtx15slWyCxm3WCvWFEPE-_eBoj0Dlh83k_oWPN65B0blYM-qXLBY1PJZbq14gOUXabf31PSo1yA</photo_reference>
   <width>3024</width>
   <height>4032</height>
   <html_attribution>&lt;a href=&quot;https://maps.google.com/maps/contrib/112033760018394328606&quot;&gt;Dohyun Kim&lt;/a&gt;</html_attribution>
  </photo>
  <price_level>4</price_level>
  <user_ratings_total>1681</user_ratings_total>
  <place_id>ChIJdxxU1WeuEmsR11c4fswX-Io</place_id>
  <plus_code>
   <global_code>4RRH46R7+88</global_code>
   <compound_code>46R7+88 Sydney, New South Wales, Australia</compound_code>
  </plus_code>
  <icon_background_color>#FF9E67</icon_background_color>
  <business_status>OPERATIONAL</business_status>
  <icon_mask_base_uri>https://maps.gstatic.com/mapfiles/place_api/icons/v2/restaurant_pinlet</icon_mask_base_uri>
 </result>
 <result>
  <name>Restaurant Hubert</name>
  <type>restaurant</type>
  <type>point_of_interest</type>
  <type>food</type>
  <type>establishment</type>
  <formatted_address>15 Bligh St, Sydney NSW 2000, Australia</formatted_address>
  <geometry>
   <location>
    <lat>-33.8651396</lat>
    <lng>151.2104533</lng>
   </location>
   <viewport>
    <southwest>
     <lat>-33.8665413</lat>
     <lng>151.2091997</lng>
    </southwest>
    <northeast>
     <lat>-33.8638417</lat>
     <lng>151.2118993</lng>
    </northeast>
   </viewport>
  </geometry>
  <rating>4.6</rating>
  <icon>https://maps.gstatic.com/mapfiles/place_api/icons/v1/png_71/restaurant-71.png</icon>
  <reference>ChIJF5-RdGquEmsR5rN_H74uSqQ</reference>
  <opening_hours>
   <open_now>false</open_now>
  </opening_hours>
  <photo>
   <photo_reference>Aap_uEDhALUBAcrBEprGmkq0_kj9kC4IEWod9h0PZBu-A1mXPN_ZfylpiDXRWxOtuONEFQIqjREf7C28LQDjzqVl4ZD0gZUk4Y0JHPDWaTlfVwijaPfw221p175Sk4po7rB2t7HgjQF2c5O12FYnvNzRiCrkOjr4xroJgzcnp1LV0y8w7gtb</photo_reference>
   <width>1024</width>
   <height>683</height>
   <html_attribution>&lt;a href=&quot;https://maps.google.com/maps/contrib/113719639442868633401&quot;&gt;Ashley Hughes&lt;/a&gt;</html_attribution>
  </photo>
  <price_level>3</price_level>
  <user_ratings_total>2393</user_ratings_total>
  <place_id>ChIJF5-RdGquEmsR5rN_H74uSqQ</place_id>
  <plus_code>
   <global_code>4RRH46M6+W5</global_code>
   <compound_code>46M6+W5 Sydney, New South Wales, Australia</compound_code>
  </plus_code>
  <icon_background_color>#FF9E67</icon_background_color>
  <business_status>OPERATIONAL</business_status>
  <icon_mask_base_uri>https://maps.gstatic.com/mapfiles/place_api/icons/v2/restaurant_pinlet</icon_mask_base_uri>
 </result>
 <!-- ... -->
 <next_page_token>Aap_uEC8n0Fzu2WsA7IqaEJty09klsnvXEYZe0aL8dIiZx3fOOfo1xYHZR00qrq-obJbYY9YRkftL-Pv__rQ-efJHSxv19gDtol2ARoY9wpi0ENg-vUAkDVt2W0mOqDy4Kjz9rm5-tzk6fhKR6r4wbLkdgXbKLuNM7KEhsjspU0RC5jQZa4FK_cM9qeUPx5IkPdAa11b9EJwKPEy-ixe77eXeRbEzDYhC5rhylkoOGbF1mHVJVxr--u-Ihe0YaFogaWDx50BcCcMN-eDetaUBJwXDnzHxtirIRF5C_yFavCzWcFn5TOC_z9Ltc-U0L5zbv3lQ7Z6kfVuOeKp4u5_lEHwfz-LuHyETKE6QwQypJUPS3AS8BFs2pYm9r_ruao6YVYsFfDGs1-9QPsVUeSjCN3NuRvbkA</next_page_token>
</PlaceSearchResponse>

    

PlacesTextSearchResponse

Поле Обязательно Тип Описание
Обязательно Array<string>

Может содержать набор атрибутов, которые должны быть показаны пользователю (у некоторых объектов атрибуты могут отсутствовать).

Обязательно Массив<Place>

Содержит массив мест.

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

Подробнее о типе Place…

Обязательно PlacesSearchStatus

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

Подробную информацию можно найти в разделе PlacesSearchStatus.

необязательно string

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

необязательно Array<string>

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

необязательно string

Содержит токен, с помощью которого можно получить до 20 дополнительных результатов. Если дополнительных результатов нет, то next_page_token не возвращается. Максимальное количество результатов, которое может быть возвращено, – 60. Между выдачей токена next_page_token и моментом, когда он станет действительным, проходит некоторое время.

PlacesSearchStatus

Коды статуса, возвращаемые сервисом.

  • OK означает, что запрос к API успешно выполнен;
  • ZERO_RESULTS – означает, что поиск успешно выполнен, однако результаты не найдены. Такое может произойти, если в поиске был указан адрес latlng в удаленном месте.
  • INVALID_REQUEST означает, что запрос к API был неправильно сформирован, обычно из-за отсутствия обязательного параметра запроса (location или radius).
  • OVER_QUERY_LIMIT, в котором указано одно из следующего:
    • Вы превысили лимиты на количество запросов в секунду.
    • В вашем аккаунте не включены платежные функции.
    • Превышен ежемесячный бонус в размере 200 долларов США или заданное ограничение на использование.
    • Указанный способ оплаты больше не действует (например, истек срок действия кредитной карты).
    Дополнительную информацию о том, как устранить эту ошибку, можно найти в разделе часто задаваемых вопросов о Картах.
  • REQUEST_DENIED указывает, что запрос был отклонен. Обычно это происходит по следующим причинам:
    • В запросе отсутствует ключ API.
    • Недопустимый параметр key.
  • UNKNOWN_ERROR означает неизвестную ошибку.

Место

Ответы поиска мест возвращают следующий набор полей Place. Не все атрибуты доступны для всех типов мест. Чтобы получить поля, которые не возвращает поиск мест, например address_components, formatted_phone_number, reviews или website, передайте возвращенный place_id в запросе информация о местах (устаревшая версия). Информацию о доступности полей и уровнях цен для конечных точек можно найти в статье Поля данных о местах (устаревшие).

Поле Тип Описание
business_status string Указывает, работает ли место, если оно является компанией: OPERATIONAL, CLOSED_TEMPORARILY или CLOSED_PERMANENTLY. Если данных о статусе нет, это поле не показывается.
formatted_address string Человекочитаемый адрес этого места. Возвращается методами текстового поиска (устаревшая версия) и Find Place (устаревшая версия). Не анализируйте отформатированный адрес программно. Вместо этого запросите address_components в Place Details (Legacy).
geometry Geometry Содержит геокодированное значение location с координатами lat и lng, а также предпочтительное значение viewport с границами northeast и southwest.
icon string URL рекомендуемого значка, который можно использовать для обозначения этого результата на карте.
icon_background_color string Шестнадцатеричный код цвета по умолчанию для категории места.
icon_mask_base_uri string Базовый URL рекомендуемого значка без расширения типа файла SVG или PNG.
name string Человекочитаемое название результата. Для результатов типа establishment это значение обычно представляет собой канонизированное название компании.
opening_hours PlaceOpeningHours Часы работы. Конечные точки поиска мест возвращают только логическое подполе open_now. Запросите opening_hours в информации о местах (устаревшая версия) для periods и weekday_text.
permanently_closed boolean Устарело. Используйте business_status, чтобы проверить статус компании.
photos Array<PlacePhoto> Массив объектов PlacePhoto, каждый из которых содержит photo_reference, height, width и html_attributions. Подробные сведения об использовании приведены в разделе Фотографии мест (устаревшая версия).
place_id string уникальный текстовый идентификатор места. Передайте этот идентификатор в параметре place_id устаревшего запроса Place Details. Подробнее об идентификаторе места…
plus_code PlusCode Закодированное местоположение, полученное на основе координат широты и долготы, содержащее global_code и необязательный compound_code.
price_level integer Уровень цен в месте по шкале от 0 до 4 (от самых низких до самых высоких). Подробнее: price_level.
rating number Оценка места в диапазоне от 1.0 до 5.0, основанная на отзывах пользователей.
reference string Устарело. Используйте вместо него place_id.
scope string Deprecated. Указывает область действия place_id, которая всегда равна GOOGLE. Возвращается методом Nearby Search (Legacy).
types Array<string> Массив типов объектов, описывающих данный результат. Подробнее о типах мест (устаревшая версия)…
user_ratings_total integer Общее количество оценок этого места (с текстом отзыва или без него).
vicinity string Упрощенный адрес места, включая населенный пункт, улицу и номер дома, но без указания штата, провинции или области, почтового индекса и страны. Возвращается методом Nearby Search (Legacy).

Отображение дополнительных результатов

По умолчанию в каждом ответе возвращается до 20 результатов типа establishment на запрос. Однако всего количество результатов может доходить до 60, и в таком случае они разбиваются на три страницы. Если в результатах поиска больше 20 мест, в ответе на поисковый запрос будет дополнительное значение – next_page_token. Чтобы увидеть следующий набор результатов, передайте значение next_page_token в параметр pagetoken нового запроса.

  • Если значение next_page_token равно null или не возвращается, значит, результатов больше нет.
  • Если повторить запрос с тем же значением next_page_token, будет возвращена следующая страница результатов.
  • Если задать параметр pagetoken, все остальные параметры будут игнорироваться.
  • После первого запроса вы можете запросить новую страницу до двух раз.
  • Каждый запрос, в том числе с использованием next_page_token, учитывается как отдельный запрос в рамках лимитов на использование и оплачивается отдельно.
  • Между выпуском next_page_token и началом его действия проходит несколько секунд. Если вы запросите следующую страницу до того, как она станет доступна, то получите ответ INVALID_REQUEST. Запросы с next_page_token всегда оплачиваются.

Например, в запросе ниже мы ищем рестораны рядом с гаванью Дарлинг в Сиднее (Австралия) и ранжируем результаты по расстоянию. Вы увидите, что ответ содержит свойство next_page_token.

{
   "html_attributions" : [],
   "next_page_token" : "CpQCAgEAAFxg8o-eU7_uKn7Yqjana-HQIx1hr5BrT4zBaEko29ANsXtp9mrqN0yrKWhf-y2PUpHRLQb1GT-mtxNcXou8TwkXhi1Jbk-ReY7oulyuvKSQrw1lgJElggGlo0d6indiH1U-tDwquw4tU_UXoQ_sj8OBo8XBUuWjuuFShqmLMP-0W59Vr6CaXdLrF8M3wFR4dUUhSf5UC4QCLaOMVP92lyh0OdtF_m_9Dt7lz-Wniod9zDrHeDsz_by570K3jL1VuDKTl_U1cJ0mzz_zDHGfOUf7VU1kVIs1WnM9SGvnm8YZURLTtMLMWx8-doGUE56Af_VfKjGDYW361OOIj9GmkyCFtaoCmTMIr5kgyeUSnB-IEhDlzujVrV6O9Mt7N4DagR6RGhT3g1viYLS4kO5YindU6dm3GIof1Q",
   "results" : [...]
   "status" : "OK"
}

Чтобы увидеть следующий набор результатов, отправьте новый запрос, передав результат next_page_token в параметр pagetoken. Пример:

https://maps.googleapis.com/maps/api/place/nearbysearch/json?pagetoken=CpQCAgEAAFxg8o-eU7_uKn7Yqjana-HQIx1hr5BrT4zBaEko29ANsXtp9mrqN0yrKWhf-y2PUpHRLQb1GT-mtxNcXou8TwkXhi1Jbk-ReY7oulyuvKSQrw1lgJElggGlo0d6indiH1U-tDwquw4tU_UXoQ_sj8OBo8XBUuWjuuFShqmLMP-0W59Vr6CaXdLrF8M3wFR4dUUhSf5UC4QCLaOMVP92lyh0OdtF_m_9Dt7lz-Wniod9zDrHeDsz_by570K3jL1VuDKTl_U1cJ0mzz_zDHGfOUf7VU1kVIs1WnM9SGvnm8YZURLTtMLMWx8-doGUE56Af_VfKjGDYW361OOIj9GmkyCFtaoCmTMIr5kgyeUSnB-IEhDlzujVrV6O9Mt7N4DagR6RGhT3g1viYLS4kO5YindU6dm3GIof1Q&key=YOUR_API_KEY