Menetapkan titik untuk rute yang akan dilalui

Secara {i>default<i}, titik jalan perantara digunakan untuk perhentian pengambilan dan berpaling, tetapi Anda juga bisa menentukan bahwa titik jalan perantara dimaksudkan hanya untuk dilewati.

Rute yang berisi titik jalan asal, perantara pass-through titik jalan, dan titik jalan tujuan hanya berisi satu segmen rute yang menghubungkan tempat asal dan tujuan, sembari melewati perantara (disebut titik jalan via).

Mengonfigurasi titik jalan perantara menjadi titik jalan pass-through dengan menetapkan properti via titik jalan ke true menggunakan Waypoint (REST) atau Waypoint (gRPC).

Properti via paling efektif saat membuat rute sebagai respons terhadap pengguna menyeret titik jalan pada peta. Hal tersebut memungkinkan pengguna untuk melihat bagaimana rute akhir mungkin terlihat secara {i>real-time<i} dan membantu memastikan titik jalan ditempatkan di lokasi yang dapat diakses oleh Compute Routes.

Contoh berikut menunjukkan cara menandai titik jalan perantara sebagai titik jalan pass-through.

{
  "location": {
    "latLng": {
      "latitude":37.419734,
      "longitude":-122.0827784
    }
  },
  "via": true
}

Mengakses ID tempat untuk titik jalan perantara

Jika Anda menentukan lokasi asal, tujuan, atau titik jalan perantara sebagai string alamat atau sebagai Plus Codes, API akan mencoba menemukan lokasi yang paling relevan yang memiliki ID tempat yang sesuai. Tujuan geocodingResults.intermediates di hasilnya berisi ID tempat yang sesuai dengan lokasi titik jalan, beserta data tambahan tentang lokasi.

Untuk setiap elemen array intermediates, gunakan metode intermediateWaypointRequestIndex untuk menentukan perantara mana titik jalan dalam permintaan sesuai dengan ID tempat dalam respons.

Contoh:

  • Anda menetapkan tiga titik jalan perantara dalam permintaan. Dua di antaranya titik jalan ditetapkan oleh string alamat dan satu lagi berdasarkan garis lintang/bujur pada koordinat tertentu.

  • Anda menyertakan geocodingResults dalam mask kolom respons untuk menentukan tampilkan array geocodingResults dalam hasil.

curl -X POST -d '{
  "origin":{
    "address": "1600 Amphitheatre Parkway, Mountain View, CA"
  },
  "destination":{
    "address": "24 Willie Mays Plaza, San Francisco, CA 94107"
  },
  "intermediates": [
    {
      "address": "450 Serra Mall, Stanford, CA 94305, USA"
    },
    {
      "location":{
        "latLng":{
          "latitude": 37.419734,
          "longitude": -122.0807784
        }
      }
    },
    {
      "address": "1836 El Camino Real, Redwood City, CA 94063"
    }
  ],
  "travelMode": "DRIVE",
}'
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY'
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.legs,geocodingResults'
'https://routes.googleapis.com/directions/v2:computeRoutes'

Responsnya mencakup array geocodingResults yang berisi ID tempat untuk tempat asal, tujuan, dan dua dari tiga titik jalan. Berikut adalah titik jalan pada indeks 0 dan 2 dari permintaan. Karena titik jalan pada indeks 1 dari permintaan ditetapkan dengan menggunakan koordinat lintang/bujur, dihilangkan dari array geocodingResults dalam respons.

{
  "routes": [{...}],
  "geocodingResults": {
    "origin": {
      "geocoderStatus": {},
      "type": [
        "premise"
      ],
      "placeId": "ChIJj38IfwK6j4ARNcyPDnEGa9g"
    },
    "destination": {
     "geocoderStatus": {},
      "type": [
        "premise"
      ],
      "placeId": "ChIJI7ES6tl_j4ARVpDZoXbWAiY"
    },
    "intermediates": [
      {
        "geocoderStatus": {},
        "intermediateWaypointRequestIndex": 0,
        "type": [
            "street_address"
        ],
        "placeId": "ChIJvdLMGyq7j4ARScE5tWX_C0Y"
      },
      {
        "geocoderStatus": {},
        "intermediateWaypointRequestIndex": 2,
        "type": [
          "premise"
        ],
        "placeId": "ChIJkTc0GKajj4AR9UMsOSHwGD0"
      }
    ]
  }
}