Menetapkan titik untuk rute yang akan dilalui

Secara default, titik jalan perantara digunakan untuk berhenti untuk penjemputan dan pengantaran, tetapi Anda juga dapat menentukan bahwa titik jalan perantara dimaksudkan hanya untuk dilewati.

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

Konfigurasikan titik jalan perantara menjadi titik jalan penerusan dengan menetapkan properti via titik jalan ke true menggunakan Waypoint (REST) atau Waypoint (gRPC).

Properti via berfungsi paling efektif saat membuat rute sebagai respons terhadap pengguna yang menarik titik jalan pada peta. Dengan begitu, pengguna dapat melihat tampilan rute akhir secara real time 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 menengah

Jika Anda menetapkan lokasi asal, tujuan, atau titik jalan perantara sebagai string alamat atau sebagai Plus code, API akan mencoba menemukan lokasi yang paling relevan dengan ID tempat yang sesuai. Array geocodingResults.intermediates dalam hasil berisi ID tempat yang sesuai dengan lokasi titik jalan, bersama dengan data tambahan tentang lokasi.

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

Contoh:

  • Anda menetapkan tiga titik jalan perantara dalam sebuah permintaan. Dua dari titik jalan tersebut ditetapkan dengan string alamat, dan satu lagi dengan koordinat garis lintang/garis bujur.

  • Anda menyertakan geocodingResults di mask kolom respons untuk menentukan menampilkan 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'

Respons mencakup array geocodingResults yang berisi ID tempat untuk tempat asal, tujuan, dan untuk dua dari tiga titik jalan. Ini adalah titik jalan pada indeks 0 dan 2 dari permintaan. Karena titik jalan pada indeks 1 permintaan ditentukan menggunakan koordinat lintang/bujur, titik jalan akan 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"
      }
    ]
  }
}