Поиск по маршруту

Чтобы использовать текстовый поиск (новый) для поиска по маршруту, передайте предварительно рассчитанный маршрут из API маршрутов в запросе в виде ломаной линии. В ответе присутствуют места, соответствующие критериям поиска, а также находящиеся рядом с указанным маршрутом.

Для поиска по маршруту:

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

  2. Используйте параметр searchAlongRouteParameters.polyline.encodedPolyline , чтобы передать закодированную ломаную линию маршрута в текстовый поиск (новый), чтобы сместить результаты поиска в соответствии с маршрутом. Затем ответ содержит места, соответствующие критериям поиска, а также расположенные рядом с указанным маршрутом.

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

  • Происхождение : 1600 Amphitheatre Parkway, Маунтин-Вью, Калифорния.
  • Пункт назначения : 24 Willie Mays Plaza, Сан-Франциско, Калифорния.

Закодированная ломаная линия поездки для этого маршрута представлена ​​строкой:

wblcFptchVIFOd@G@EVw@Ms@dHKR}ApNA`AF~@Hf@TjAb@bBb@~@n@p@^Rd@~@Vz@HVz@nDLt@?d@Kr@c@~@mD`G?`@aEfGkCnDuChDm`@bb@[`@{GhHeEdEciBnnBkC`DkC~DaClEuKjT_Z|l@Qb@iR~_@}EzJ_AdB_Und@kAfCaOjZkg@vcAqBzD_]rr@iBlEaBxEgArD}AlG}AhHsA`IeAnH{@dIq@dJgL~iBq@rHu@vGgAtHwArHaBhHkBzG_DpJ}Nbc@iBhGkA|EgC|LcIjb@oAhG_AvDgAdDkApC_BzCiBpCsFvGii@vn@scAxlAmLjNgSzUeRjT{TzWqExEmG|FuNlMmMhLaRvPqOlNmbAl}@mFlF{PlOmJfIoElE}LtMiSbU_H`I}}@jcAwl@vp@oAbBqA~BeAhCm@tBg@fCWrBQ~BI|DaB~rBO~D[bEa@`Dm@pDaAdE{@vC_BbEkB~Def@|z@sEzHKJeS~]}K`S{\\~l@cXpe@sBpDm@bAuCxDkBrBiC~BwCtByBnAcBx@}Bt@{Bn@gh@|LaOpDeFhAoDj@aE^kVrA_E^iEr@yD~@uBr@gMjF_EnAcCh@eFr@_DRsAD}@Jsu@xCWDqIV}BCeCOyDm@cBa@_DmA}JeE_CwAsBcBiBoBuAqBmOoX{CuEkB_CoDqDkVoUoD{CeE_DkEkC_FeCqB}@sDuAoDgAeCe@cCW}CK}BDaDTeOlBcuBrYaNlBq@Dyd@rGyFt@yBb@eBf@oCnAoBlAkIpGkAp@wBbAaCt@oFdAwKjBoGxA{FbByIjC_HfB_@KmNdDuC|@uFzBcH|C{@\\[?sBv@}@VaBVoA@y@EmAQcA[w@]aBkAeAkA}BuDUKs@uAqBsCwBcCgAiAiN_MyKsJsG{GkBaBiBuA{BwAwDkBcOaHiC_AiCg@}BQcCAcBHqBVkB`@qEjAu@LgCVgAHwG@sG?mABsH^eNr@mBXy@NqBt@uAt@aBlAkAlA}BtCyApBiAdB_BxB{A`B}@j@oAf@s@PeCVcIf@gAAkAQy@YiAo@_A{@_DgEgJqM_DeEaM}PoBiCzAsBw@kAdAGVk@f@q@z@C

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

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food",
  "searchAlongRouteParameters": {
    "polyline": {
      "encodedPolyline": "ROUTE_POLYLINE"
    }
  }
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel' \
'https://places.googleapis.com/v1/places:searchText'

В ответе указаны места, соответствующие критериям поиска, смещенным к маршруту:

{
  "places": [
    {
      "formattedAddress": "60 Morris St, San Francisco, CA 94107, USA",
      "priceLevel": "PRICE_LEVEL_MODERATE",
      "displayName": {
        "text": "Umami Express",
        "languageCode": "en"
      }
    },
    {
      "formattedAddress": "1130 4th St, San Francisco, CA 94158, USA",
      "priceLevel": "PRICE_LEVEL_MODERATE",
      "displayName": {
        "text": "House of Tadu Ethiopian Kitchen",
        "languageCode": "en"
      }
    },
    {
      "formattedAddress": "1602 El Camino Real Ste A, Belmont, CA 94002, USA",
      "priceLevel": "PRICE_LEVEL_MODERATE",
      "displayName": {
        "text": "Eats Meets West Bowls",
        "languageCode": "en"
      }
    },
    /.../
  ]
}

Вам не нужно смещать результаты на весь маршрут. Например, вы могли уже пройти половину маршрута, прежде чем выполнить поиск. В этом случае можно явно указать начало маршрута для поиска, чтобы переопределить начало координат, определенное в закодированной полилинии. В следующем примере вы указываете координаты широты и долготы Сан-Матео, штат Калифорния, который находится примерно на середине полилинии маршрута:

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food",
  "searchAlongRouteParameters": {
    "polyline": {
      "encodedPolyline": "ROUTE_POLYLINE"
    }
  },
  "routingParameters": {
    "origin": {
      "latitude": 37.56617,
      "longitude": -122.30870
    }
  }
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel' \
'https://places.googleapis.com/v1/places:searchText'