Merencanakan rute

Terkadang, Anda mungkin ingin merencanakan rute yang disediakan aplikasi Anda kepada pengguna. Menggunakan token rute dari Routes API (atau Routes Preferred API) dapat membantu Anda menentukan dua hal untuk rute yang Anda rencanakan:

  • Polyline untuk rute

  • Tujuan rute Anda

Misalnya, berikut adalah beberapa contoh tujuan pemilihan rute yang mungkin Anda miliki:

  • Meminimalkan waktu pengiriman: Bisnis yang mengirimkan makanan mungkin ingin meminimalkan waktu yang dibutuhkan untuk mengirimkan makanan.

  • Meminimalkan waktu perjalanan atau konsumsi bahan bakar: Bisnis logistik mungkin ingin meningkatkan efisiensi pengemudi dan mengurangi biaya bahan bakar.

  • Meminimalkan waktu ke tujuan: Operasi pengiriman layanan mungkin ingin meminimalkan waktu yang dibutuhkan operator untuk mengajukan permintaan tugas.

  • Menurunkan biaya dan meningkatkan keamanan: Bisnis transportasi online mungkin ingin mencari rute yang lebih murah bagi penumpang dan menghindari area tertentu demi keselamatan alasan.

Untuk informasi selengkapnya tentang merencanakan rute menggunakan token rute, lihat Minta token rute.

Alasan menggunakan token rute untuk tujuan rute

Dengan token rute dari Routes atau Routes Preferred API, Anda memiliki lebih banyak kontrol atas rute yang diberikan:

  • Merencanakan rute terlebih dahulu yang akan digunakan oleh Navigation SDK jika memungkinkan.

  • Pilih rute terbaik yang akan digunakan Navigation SDK. Jika Anda meminta token rute saat membuat rute di Routes API, Anda mendapatkan token rute untuk setiap rute yang dihasilkan. Anda kemudian dapat memilih token untuk rute yang ingin Anda gunakan saat meneruskannya ke Navigation SDK.

  • Perkirakan harga di muka, termasuk perkiraan PWT dan jarak. Meskipun biaya dan waktu sebenarnya mungkin bervariasi, perkiraan ini mengurangi kesenjangan antara biaya rute yang diperkirakan dan biaya rute yang sebenarnya.

  • Menentukan tujuan rute yang lebih canggih, seperti pemilihan rute hemat energi atau yang paling singkat rute perjalanan.

Cara kerja token rute Routes API

Anda dapat menggunakan Routes API atau Routes Preferred API untuk merencanakan rute menggunakan tujuan rute. Routes API menampilkan token rute yang dapat diteruskan ke Navigation SDK untuk memandu cara mengarahkan kendaraan Anda.

Inilah yang terjadi jika Anda meminta dan menggunakan token rute dari API Rute:

  1. Routes API menampilkan token rute terenkripsi yang menyertakan rute tersebut polyline dan tujuan rute.

  2. Anda meneruskan token rute ke Navigation SDK.

  3. Navigation SDK akan mengambil rute, atau jika rute tidak diambil yang tersedia karena perubahan kondisi, model ini mengambil kecocokan terbaik rute perjalanan.

  4. Saat mengemudikan rute, jika lalu lintas atau kondisi jalan lainnya berubah, atau jika kendaraan menyimpang dari rute yang direncanakan, rute yang dimodifikasi terus mencoba mencocokkan rute terbaik berdasarkan tujuan rute di token.

Proses ini memaksimalkan seberapa dekat rute sebenarnya dengan rute yang Anda rencanakan.

Mengapa rute yang direncanakan tidak dapat diikuti dengan tepat

Pikirkan rute dan tujuan rute yang direncanakan sebagai panduan yang harus diikuti: keduanya tidak bersifat preskriptif. Anda mungkin melihat perbedaan antara rute yang direncanakan dan rute yang disediakan dengan panduan navigasi karena adanya perbedaan jalan kondisi, lokasi awal, atau parameter lain yang telah berubah sejak Anda membuat rute yang direncanakan. Perbedaan ini dapat mengakibatkan ketidaksesuaian antara sasaran yang direncanakan maupun yang sebenarnya untuk jarak dan PWT, di antara perjalanan penting lainnya kualitas.

Merencanakan rute menggunakan token rute

Anda dapat merencanakan rute dengan membuat token rute, lalu meneruskannya ke Navigation SDK, seperti yang dijelaskan dalam langkah-langkah berikut:

Langkah 1: Buat token rute menggunakan Routes atau Routes Preferred API

  1. Minta token rute dengan salah satu metode berikut:

    • Routes API: computeRoutes. Untuk mengetahui informasi selengkapnya tentang meminta token rute di Routes API, lihat Hitung rute dan Minta token rute.

    • Routes Preferred API: computeCustomRoutes. Untuk mengetahui informasi selengkapnya tentang meminta token rute di Routes Preferred API, lihat Rencanakan rute.

  2. Menyiapkan permintaan rute untuk memenuhi persyaratan penggunaan rute token:

    • Tetapkan travel_mode ke DRIVING
    • Tetapkan routing_preference ke TRAFFIC_AWARE atau TRAFFIC_AWARE_OPTIMAL
    • JANGAN gunakan titik jalan Via

Langkah 2: Teruskan token rute ke Navigation SDK

  1. Simpan token rute: Di Navigation SDK, siapkan string untuk menyimpan token rute. Contoh:

    let routeToken = "route token returned by Routes API"

    Contoh token rute yang ditampilkan:

    {
    // Other fields
    "routeToken": "CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g",
    }
    
  2. Teruskan token rute ke Navigation SDK menggunakan Metode mapView.navigator setDestinations, yang menentukan tujuan yang sama titik jalan yang Anda gunakan saat membuat token rute:

    mapView.navigator?.setDestinations([waypoint1, waypoint2], routeToken: routeToken, callback: {...})

Metode Navigator.setDestinations akan menampilkan status permintaan. Jika sebuah rute ditemukan dari lokasi pengguna ke tujuan yang ditentukan, yang ditampilkan adalah RouteStatus.OK.

Untuk informasi selengkapnya tentang metode ini, lihat Navigator.setDestinations.

Contoh

Contoh kode berikut menunjukkan cara mengambil rute yang direncanakan.

Swift

let location = CLLocationCoordinate2D(latitude: 47.67, longitude: -122.20)
let waypoint1 = GMSNavigationWaypoint(location: location, title: "waypoint from location")!
let waypoint2 = GMSNavigationWaypoint(placeID: "samplePlaceID", title: "waypoint from Place ID")!

let routeToken = "route token returned by Routes API"
mapView.navigator?.setDestinations([waypoint1, waypoint2], routeToken: routeToken, callback: {...})

Objective-C

CLLocationCoordinate2D location = CLLocationCoordinate2DMake(47.67, -122.20);
GMSNavigationWaypoint *waypoint1 = [[GMSNavigationWaypoint alloc] initWithLocation:coordinate title:@"waypoint from location"];
GMSNavigationWaypoint *waypoint2 = [[GMSNavigationWaypoint alloc] initWithPlaceID:@"samplePlaceID"
                                                                            title:@"waypoint from Place ID"];
NSString *routeToken = @"route token returned by Routes API";

[mapView.navigator setDestinations:@[waypoint1, waypoint2]
                         routeToken:routeToken
                           callback:^(GMSRouteStatus routeStatus){...}];

Cara token rute dan Navigation SDK berinteraksi

Berikut ini cara rute yang dihasilkan oleh Navigation SDK dan dalam interaksi token rute:

  • Mengganti tujuan yang telah ditetapkan sebelumnya.

  • Menggunakan lokasi awal kendaraan.

  • Sesuaikan dengan kondisi jalan dan lalu lintas. Lihat Mengapa rute yang direncanakan tidak dapat diikuti dengan tepat.

  • Mengabaikan opsi terkait perutean berikut sebagai tidak diperlukan:

    • avoidsHighways
    • avoidsTolls
    • avoidsFerries
    • licensePlateRestriction
  • Mengikuti:

    • Opsi terkait titik jalan, seperti preferensi sisi jalan.

    • Tujuan rute. Jika Navigation SDK harus menyesuaikan rute yang ditampilkan, model ini menggunakan tujuan rute yang Anda tentukan yang meminta token rute. Untuk alasan ini, Anda harus menggunakan alamat opsi terkait titik jalan yang Anda tentukan di Routes API.