Meminta rute alternatif

Secara default, Routes API menampilkan rute default, yang biasanya rute tercepat dari asal ke tujuan. Saat Anda meminta alternatif, API menampilkan hingga tiga rute beserta rute default rute perjalanan. 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 perantara titik jalan. Meminta rute alternatif saat rute menentukan titik jalan perantara tidak menyebabkan kesalahan. Namun, tidak ada alternatif rute yang ditampilkan.

  • Respons berisi maksimum tiga rute alternatif. Namun, terkadang tidak ada rute alternatif yang tersedia sehingga responsnya hanya berisi rute default-nya.

  • Karena diperlukan pemrosesan tambahan untuk menghitung alternatif permintaan rute alternatif dapat memperlama waktu respons API.

Contoh permintaan rute alternatif

Tetapkan computeAlternativeRoutes ke true untuk meminta rute alternatif. Tujuan Contoh berikut menunjukkan cara meminta rute alternatif dalam 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 menetapkan mask kolom sehingga respons hanya berisi Properti duration, distanceMeters,, dan routeLabels untuk setiap rute. Nama pelanggan dapat menggunakan informasi tersebut untuk memilih rute yang akan diambil. Untuk selengkapnya informasinya, lihat Memilih informasi yang akan ditampilkan.

Contoh respons rute alternatif

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

  • Untuk rute default, properti routeLabels berisi DEFAULT_ROUTE.

  • Untuk rute alternatif, properti routeLabels berisi DEFAULT_ROUTE_ALTERNATE.

Dalam contoh ini, respons berisi rute default dan dua alternatif rute perjalanan. 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"
      ]
    }
   ]
}