Rota boyunca arayın

Bir rota boyunca arama yapmak için Metin Arama (Yeni)'yi kullanmak istiyorsanız Routes API'den önceden hesaplanmış rotayı istekle birlikte çoklu çizgi olarak iletin. Yanıt, arama ölçütleriyle eşleşen ve belirtilen rotanın yakınında bulunan yerleri içerir.

Bir rota üzerinde arama yapmak için:

  1. Yanıtta rotanın kodlanmış çoklu çizgisini döndüren bir rota hesaplamak için Routes API'yi kullanın.

  2. Arama sonuçlarını rotaya yönlendirmek için rotanın kodlanmış poli çizgisini Metin Arama'ya (Yeni) iletmek üzere searchAlongRouteParameters.polyline.encodedPolyline parametresini kullanın. Yanıt, arama ölçütleriyle eşleşen ve belirtilen rotanın yakınında bulunan yerleri içerir.

Metin Arama (Yeni), varsayılan olarak poli çizgi tarafından tanımlanan başlangıçtan hedefe kadar olan rotanın tamamında arama yapar. Aşağıdaki örnekte çoklu çizgi, şuradan başlayan rotayı tanımlar:

  • Kaynak: 1600 Amphitheatre Parkway, Mountain View, CA
  • Hedef: 24 Willie Mays Plaza, San Francisco, CA

Seyahatin bu rota için kodlanmış çoklu çizgisi şu dizeyle temsil edilir:

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

Aşağıdaki örnekte, arama sonuçlarını etkilemek için rotanın kodlanmış çok çizgisi kullanılmaktadır:

  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'

Yanıt, arama ölçütleriyle eşleşen yerleri rotaya göre ağırlıklı olarak içerir:

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

Sonuçları rotanın tamamına göre yönlendirmeniz gerekmez. Örneğin, aramayı yapmadan önce rotanın yarısına gelmiş olabilirsiniz. Bu durumda, kodlanmış çok çizgili çizgide tanımlanan orijini geçersiz kılmak için aramaya açık bir yönlendirme orijini belirtebilirsiniz. Aşağıdaki örnekte, rota çoklu çizgisinin yaklaşık yarısında bulunan San Mateo, CA'nın enlem ve boylam koordinatlarını belirtirsiniz:

  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'