Menggabungkan ringkasan pemilihan rute dengan penelusuran di sepanjang rute

Anda dapat menggabungkan penghitungan ringkasan pemilihan rute dengan penelusuran di sepanjang rute. Dalam hal ini, Text Search (Baru) menampilkan durasi dan jarak perjalanan ke setiap tempat dalam respons, lalu dari setiap tempat ke tujuan akhir rute.

Untuk menggunakan Text Search (Baru) guna menghitung ringkasan pemilihan rute beserta penelusuran di sepanjang rute:

  1. Gunakan Routes API untuk menghitung rute yang menampilkan polyline rute dalam respons.

  2. Gunakan parameter searchAlongRouteParameters.polyline.encodedPolyline untuk meneruskan polyline rute ke Text Search (Baru) guna membiaskan hasil penelusuran ke rute. Respons kemudian akan berisi tempat yang cocok dengan kriteria penelusuran dan juga berada di dekat rute yang ditentukan.

  3. Sertakan routingSummaries dalam mask kolom agar respons menyertakan array routingSummaries. Array ini berisi durasi dan jarak dari tempat asal pemilihan rute ke setiap tempat dalam respons.

APIs Explorer memungkinkan Anda membuat permintaan langsung sehingga Anda dapat memahami API dan opsi API:

Secara default, Text Search (New) melakukan penelusuran di sepanjang rute:

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,routingSummaries' \
'https://places.googleapis.com/v1/places:searchText'

Responsnya berisi dua array: array places yang berisi tempat yang cocok, dan array routingSummaries yang berisi durasi dan jarak untuk melakukan perjalanan ke setiap tempat:

{
  "places": [
    {
      "formattedAddress": "1199 El Camino Real, San Bruno, CA 94066, USA",
      "priceLevel": "PRICE_LEVEL_INEXPENSIVE",
      "displayName": {
        "text": "Vegan Mob - Vegan BBQ and Soul Food",
        "languageCode": "en"
      }
    },
    {
      "formattedAddress": "839 Kearny St, San Francisco, CA 94108, USA",
      "priceLevel": "PRICE_LEVEL_MODERATE",
      "displayName": {
        "text": "Enjoy Vegetarian",
        "languageCode": "en"
      }
    },
   …
],
  "routingSummaries": [
    {
      "legs": [
        {
          "duration": "285s",
          "distanceMeters": 1616
        },
        {
          "duration": "2466s",
          "distanceMeters": 58147
        }
      ],
      "directionsUri": "https://www.google.com/maps/dir/37.42268,-122.08473/''/37.77877,-122.38781/data=!4m7!4m6!1m0!1m2!1m1!1s0x808f87f9ede375f5:0xa37171fea1a16b28!1m0!3e0"
    },
    {
      "legs": [
        {
          "duration": "696s",
          "distanceMeters": 4704
        },
        {
          "duration": "2787s",
          "distanceMeters": 58901
        }
      ],
      "directionsUri": "https://www.google.com/maps/dir/37.42268,-122.08473/''/37.77877,-122.38781/data=!4m7!4m6!1m0!1m2!1m1!1s0x808580f4cebdb06f:0xd3af09e5742234f2!1m0!3e0"
    },
   …
  ]
}

Untuk setiap entri dalam array legs, Text Search (New) menampilkan waktu perjalanan dua leg:

  • Segmen pertama berisi durasi dan jarak perjalanan dari tempat asal ke tempat tersebut. Dalam contoh ini, durasi dan jarak dari tempat asal ke tempat pertama dalam hasil adalah 285 detik dan 1.616 meter.

  • Segmen kedua berisi durasi dan jarak perjalanan dari tempat ke tujuan rute. Dalam contoh ini, durasi dan jaraknya adalah 2.466 detik dan 58.147 meter.

Menentukan tempat asal pemilihan rute, mode perjalanan, dan pengubah rute

Anda dapat mengubah penghitungan ringkasan penelusuran dan pemilihan rute dengan menentukan tempat asal pemilihan rute, mode transportasi, pengubah rute, dan preferensi pemilihan rute. Mode perjalanan dan pengubah rute berfungsi sama seperti untuk menghitung ringkasan pemilihan rute tanpa menentukan rute seperti yang ditunjukkan dalam topik Menentukan opsi perjalanan.

Secara default, leg pertama dari setiap hasil berisi jarak dari tempat asal yang ditentukan oleh polyline ke setiap tempat. Namun, Anda dapat mengganti setelan default tersebut dengan menentukan asal pemilihan rute secara eksplisit dalam permintaan. Jika ditentukan, segmen pertama dari semua respons akan menentukan jarak dan durasi dari origin pemilihan rute yang ditentukan, yang menggantikan origin dari polyline.

Pada contoh berikutnya, Anda menentukan tempat asal pemilihan rute sebagai koordinat San Mateo, CA, menentukan untuk menghindari jalan tol, dan menetapkan jumlah hasil ke 5:

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

Gambar berikut menampilkan peta yang berisi polyline rute, tempat asal baru (pin biru muda), dan tempat di hasil penelusuran (pin hijau). Perhatikan bahwa semua hasil berada di sepanjang rute, tetapi melewati San Mateo:

Hasil penelusuran dari origin update.

Cobalah!

APIs Explorer memungkinkan Anda membuat contoh permintaan sehingga Anda dapat memahami API dan opsi API.

  1. Pilih ikon API api di sisi kanan halaman.

  2. Edit parameter permintaan jika perlu.

  3. Pilih tombol Execute. Dalam dialog, pilih akun yang ingin Anda gunakan untuk membuat permintaan.

  4. Di panel APIs Explorer, pilih ikon layar penuh fullscreen untuk meluaskan jendela APIs Explorer.