Navigation SDK untuk iOS menawarkan cara yang lebih baik untuk menentukan titik jalan, atau titik navigasi, yang memberikan perutean yang lebih akurat dan pengalaman kedatangan yang lebih baik, terutama untuk tujuan dengan beberapa pintu masuk atau titik navigasi tertentu. Anda dapat merutekan ke lokasi yang tepat menggunakan navigationPointToken, yang merupakan string yang mengenkode lokasi dan konteks rute tambahan. Anda juga dapat menggabungkan koordinat lintang dan bujur dengan ID Tempat untuk konteks tambahan.
Latar belakang
Sebelum v10.10, Anda dapat menentukan Waypoint menggunakan koordinat lokasi
atau ID Tempat. Meskipun terkadang efektif, perutean hanya ke garis lintang dan bujur terkadang dapat menyebabkan titik keluar atau pengambilan yang kurang optimal, terutama untuk tempat besar, taman, atau bangunan dengan beberapa pintu masuk. Hasilnya mungkin akan menyesuaikan dengan segmen jalan terdekat, yang mungkin bukan titik akses yang paling nyaman atau benar.
Opsi titik jalan yang ditingkatkan mengatasi hal ini dengan memungkinkan Anda memberikan lebih banyak konteks.
Menggunakan token Titik Navigasi
Untuk perutean yang paling presisi ke titik akses tertentu seperti pintu masuk, tempat bongkar muat, atau area pengambilan yang ditentukan, Anda dapat menggunakan navigationPointToken.
Token ini diperoleh dengan memanggil metode Destinations Geocoding API. Menunjukkan titik navigasi spesifik yang dapat dirutekan dan terkait dengan suatu tempat.
Untuk menentukan token Titik Navigasi:
Dapatkan
navigationPointTokendari respons Destinations method of the Geocoding API.Tentukan
navigationPointTokentersebut saat Anda membuatGMSNavigationWaypoint.
Catatan: Anda tidak dapat secara bersamaan menentukan token titik Navigasi bersama dengan lokasi dan PlaceID.
Swift
// Create a waypoint using a navigation endpoint token
let waypointTwo = GMSNavigationWaypoint(
navigationPointToken: "ChIJALijSXPhQkARHmIozCCbXsASEgkFVjYHGH6PgBFrbM7wl3.."
title: "Sydney Opera House")
// Route to the waypoint
navigator.setDestinations([waypointTwo]) { [weak self] routeStatus in
self?.handleRouteCallback(status: routeStatus)
}
Objective-C
GMSNavigationWaypoint *waypointTwo = [[GMSNavigationWaypoint alloc] initWithNavigationPointToek:@"sampleNavigationPointToken"
Menggunakan token titik navigasi dan token rute
Anda dapat mengambil token titik navigasi melalui Geocoding API, mengambil token rute dari Routes API, lalu meneruskan token titik navigasi dan token rute ke Navigation SDK. Hal ini berguna dalam skenario seperti layanan transportasi online atau pengiriman, saat Anda menggunakan Routes API untuk menghitung harga perjalanan dan Anda menginginkan presisi token titik navigasi.
Token rute memengaruhi rute yang dipilih oleh Navigation SDK ke rute yang digunakan untuk penetapan harga. Hal ini mengurangi risiko penggunaan rute yang lebih panjang atau lebih pendek untuk perjalanan, yang dapat menimbulkan "kejutan harga".
Lihat dokumentasi Routes API untuk mengetahui informasi selengkapnya tentang menentukan lokasi menggunakan token titik navigasi dan membuat token rute. Lihat "Merencanakan rute" untuk mempelajari cara merencanakan rute menggunakan token rute.
Diagram ini menunjukkan cara aplikasi layanan transportasi online atau pengiriman menggunakan token titik navigasi dan token rute secara bersamaan:
Menggabungkan ID Tempat dan Lokasi
Mulai dari v10.10, Anda dapat memberikan kedua ID Tempat dan koordinat lokasi saat membuat titik jalan. Metode ini berguna jika Anda ingin menentukan titik yang tepat (lokasi) sambil tetap memberikan konteks tempat secara keseluruhan (ID Tempat). Hal ini memungkinkan Navigation SDK memberikan pengalaman kedatangan yang lebih kaya dengan menandai gedung tujuan atau menampilkan tempat menarik di sekitar yang terkait dengan ID Tempat.
Swift
// Create a waypoint using both the latlng and placeID
let waypoint = GMSNavigationWaypoint(
location: CLLocationCoordinate2DMake(-33.85657945261524, 151.21535034203333),
placeID: "ChIJ3S-JXmauEmsRUcIaWtf4MzE",
title: "Sydney Opera House")
// Route to the waypoint
navigator.setDestinations([waypoint]) { [weak self] routeStatus in
self?.handleRouteCallback(status: routeStatus)
}
Objective-C
CLLocationCoordinate2D location = CLLocationCoordinate2DMake(47.67, -122.20);
GMSNavigationWaypoint *waypoint = [[GMSNavigationWaypoint alloc] initWithLocation:placeID:coordinate title:@"waypoint from location and placeiD"];
Pertimbangan:
Jika Anda memberikan placeID dan location:
- Rute terutama menargetkan
locationyang ditentukan. placeIddigunakan sebagai konteks untuk meningkatkan pengalaman kedatangan.- Pengalihan: Jika SDK menentukan bahwa
placeIdyang diberikan sesuai dengan fitur yang terlalu jauh darilocationyang diberikan,placeIdakan diabaikan. Dalam skenario ini, perutean hanya akan dilanjutkan kelocation, dan peningkatan pengalaman kedatangan khusus tempat tidak akan tersedia.
Ringkasan Konfigurasi Titik Jalan yang Valid
| Spesifikasi | location |
placeID |
navigationPointToken |
Perilaku pemilihan rute | Sorotan tujuan |
|---|---|---|---|---|---|
| Hanya koordinat lokasi | tetapkan | tidak ada | tidak ada | Merutekan ke segmen jalan terdekat dengan koordinat yang ditentukan | Ditampilkan jika tujuan dapat disimpulkan dengan tingkat keyakinan yang tinggi |
| Hanya ID tempat | tidak ada | tetapkan | tidak ada | Rute ke titik navigasi default untuk ID Tempat | Dari ID Tempat |
| Token titik navigasi saja | tidak ada | tidak ada | tetapkan | Rute ke titik navigasi presisi yang diwakili oleh token | Dari tujuan yang ditentukan dalam metode tujuan Geocoding API asli |
| Koordinat lokasi dan ID Tempat digabungkan | se | tetapkan | tidak ada | Merutekan ke segmen jalan terdekat dengan koordinat yang ditentukan | Dari ID Tempat, meskipun tidak ditampilkan jika ID Tempat terlalu jauh dari koordinat lintang/bujur |