Tìm dọc theo tuyến đường

Để sử dụng tính năng Tìm kiếm bằng văn bản (Mới) để tìm kiếm dọc theo một tuyến đường, hãy truyền tuyến đường được tính toán trước từ Routes API trong yêu cầu dưới dạng một đa tuyến. Nội dung phản hồi chứa những địa điểm khớp với tiêu chí tìm kiếm và cũng nằm gần tuyến đường đã chỉ định.

Cách tìm dọc theo tuyến đường:

  1. Sử dụng API Tuyến đường để tính toán một tuyến đường trả về đường đa giác được mã hoá của tuyến đường trong phản hồi.

  2. Sử dụng thông số searchAlongRouteParameters.polyline.encodedPolyline để truyền đường đa tuyến được mã hoá của tuyến đường đến Tìm kiếm bằng văn bản (Mới) nhằm thiên vị kết quả tìm kiếm cho tuyến đường. Sau đó, phản hồi sẽ chứa những địa điểm phù hợp với tiêu chí tìm kiếm và cũng nằm gần tuyến đường đã chỉ định.

Theo mặc định, tính năng Tìm kiếm văn bản (Mới) sẽ tìm kiếm dọc theo toàn bộ tuyến đường từ điểm xuất phát đến điểm đến do đường đa tuyến xác định. Trong ví dụ sau, đường đa tuyến xác định tuyến đường từ:

  • Nguồn gốc: 1600 Amphitheatre Parkway, Mountain View, CA
  • Đích đến: 24 Willie Mays Plaza, San Francisco, CA

Hình nhiều đường được mã hoá của chuyến đi cho tuyến đường này được biểu thị bằng chuỗi:

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

Ví dụ sau đây sử dụng đường đa tuyến được mã hoá của tuyến đường để thiên vị kết quả tìm kiếm:

  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'

Phản hồi chứa những địa điểm phù hợp với tiêu chí tìm kiếm, thiên về tuyến đường:

  {
    "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"
        }
      },
      /.../
    ]
  }

Bạn không cần phải áp dụng kết quả cho toàn bộ tuyến đường. Ví dụ: bạn có thể đã đi được một nửa quãng đường trước khi thực hiện tìm kiếm. Trong trường hợp này, bạn có thể chỉ định một nguồn định tuyến rõ ràng cho nội dung tìm kiếm để ghi đè nguồn được xác định trong đường đa tuyến được mã hoá. Trong ví dụ sau, bạn chỉ định tọa độ vĩ độ và kinh độ của San Mateo, California, vị trí này nằm ở khoảng giữa tuyến đường đa tuyến:

  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'