Meminta rute alternatif

Secara default, Routes API menampilkan rute default, yang biasanya merupakan rute tercepat dari tempat asal ke tujuan. Saat Anda meminta rute alternatif, API akan menampilkan hingga tiga rute bersama dengan rute default. Selanjutnya, pelanggan Anda dapat memilih rute yang paling sesuai dengan kebutuhan mereka.

Pertimbangan saat meminta rute alternatif

Untuk meminta rute alternatif, perhatikan pertimbangan berikut:

  • Anda hanya dapat meminta rute alternatif untuk rute tanpa titik jalan perantara. Meminta rute alternatif saat rute menentukan titik jalan perantara tidak akan menyebabkan error. Namun, tidak ada rute alternatif yang ditampilkan.

  • Respons berisi maksimum tiga rute alternatif. Namun, terkadang rute alternatif tidak tersedia sehingga respons hanya berisi rute default.

  • Karena perlu pemrosesan tambahan untuk menghitung rute alternatif, meminta rute alternatif dapat meningkatkan waktu respons API.

Contoh permintaan rute alternatif

Setel computeAlternativeRoutes ke true untuk meminta rute alternatif. Contoh berikut menunjukkan cara meminta rute alternatif dalam permintaan metode computeRoutes (REST).

curl -X POST -d '{
  "origin":{
    "location":{
      "latLng":{
        "latitude":42.340173523716736,
        "longitude":-71.05997968330408
      }
    }
  },
  "destination":{
    "location":{
      "latLng":{
        "latitude":42.075698891472804,
        "longitude": -72.59806562080408
      }
    }
  },
  "travelMode": "DRIVE",
  "routingPreference":"TRAFFIC_AWARE",
  "computeAlternativeRoutes": true
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.routeLabels' \
'https://routes.googleapis.com/directions/v2:computeRoutes'

Dalam contoh ini, Anda menentukan mask kolom sehingga respons hanya berisi properti duration, distanceMeters,, dan routeLabels untuk setiap rute. Pelanggan kemudian dapat menggunakan informasi tersebut untuk memilih rute yang akan diambil. Untuk mengetahui informasi selengkapnya, lihat Memilih informasi yang akan ditampilkan.

Contoh respons rute alternatif

Pada respons, gunakan properti array routeLabels untuk mengidentifikasi rute jangkauan:

  • Untuk rute default, properti routeLabels berisi DEFAULT_ROUTE.

  • Untuk setiap rute alternatif, properti routeLabels berisi DEFAULT_ROUTE_ALTERNATE.

Dalam contoh ini, respons berisi rute default dan dua rute alternatif. Perhatikan bahwa nilai properti duration dan distanceMeters berbeda untuk setiap rute:

{
  "routes": [
    {
      "distanceMeters": 150322,
      "duration": "5309s",
      "routeLabels": [
        "DEFAULT_ROUTE"
      ]
    },
    {
      "distanceMeters": 157614,
      "duration": "6879s",
      "routeLabels": [
        "DEFAULT_ROUTE_ALTERNATE"
      ]
    },
    {
      "distanceMeters": 189311,
      "duration": "7376s",
      "routeLabels": [
        "DEFAULT_ROUTE_ALTERNATE"
      ]
    }
   ]
}

Menyertakan polyline dalam respons

Untuk memudahkan pengguna memilih rute, tambahkan polyline untuk setiap rute ke respons. Anda kemudian dapat menampilkan setiap polyline pada peta.

Untuk menambahkan polyline, sertakan routes.polyline dalam mask kolom:

-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.routeLabels,routes.polyline'

Responsnya kemudian berisi polyline untuk setiap rute:

{
  "routes": [
    {
      "distanceMeters": 150322,
      "duration": "5309s",
      "polyline": {
        "encodedPolyline": "mrlaGtavpLPLBTm…PgA^qC"
      },
      "routeLabels": [
        "DEFAULT_ROUTE"
      ]
    },
    {
      "distanceMeters": 157614,
      "duration": "6879s",
      "polyline": {
        "encodedPolyline": "DmEd`@e@pCo@pCs@z…PgA^qC"
      },
      "routeLabels": [
        "DEFAULT_ROUTE_ALTERNATE"
      ]
    },
    {
      "distanceMeters": 189311,
      "duration": "7376s",
      "polyline": {
        "encodedPolyline": "FVLL|Af@HPAV…PgA^qC"
      },
      "routeLabels": [
        "DEFAULT_ROUTE_ALTERNATE"
      ]
    }
   ]
}