Google Navigation SDK mandiri
Google Navigation SDK menghadirkan pengalaman petunjuk arah belok demi belok Google Maps yang sudah familiar sebagai paket perangkat lunak mandiri, memungkinkan anda untuk mengintegrasikan dan menyesuaikan modul navigasi di dalam aplikasi seluler anda sendiri. Akhirnya, salah satu fitur Google Maps yang paling banyak diminta kini tersedia untuk semua orang sebagai solusi siap pakai yang dapat diimplementasikan hanya dengan beberapa baris kode. Dalam postingan blog ini, kami akan menguraikan cara kerja Navigation SDK (Nav SDK), berapa biayanya, untuk siapa SDK ini, dan bagaimana Anda dapat menjalankannya dengan cepat.

Bagian 1: Google Navigation SDK mandiri (artikel ini)
Bagian 2: Memulai dengan Google Navigation SDK
Bagian 3: Menambahkan kotak teks Pelengkapan Otomatis Tempat ke aplikasi Android Anda
Bagian 4: Cara menggambar rute di Google Maps untuk Android dengan API Rute
Bagian 5: Menata tampilan Navigation SDK dengan UI dan branding kustom
Bagian 6: Penanda Google Maps kustom pada tampilan navigasi
Bagian 7: Sesuaikan ikon kendaraan Anda dengan Navigation SDK
Bagian 8: Poligon, batas, dan gaya peta dasar kustom di Navigation SDK
Bagian 9: Menggunakan Navigation SDK untuk navigasi multi titik arah
Bagian 10: Meneruskan token rute GMPRO atau API Rute ke Navigation SDK
Bagian 11: Mendengarkan peristiwa dan mendeteksi kedatangan di tujuan
Bagian 12: Google Navigation SDK vs Mapbox vs HERE Maps Pengenalan Google Navigation SDK
Memperkenalkan Google Navigation SDK
Jika anda mengemudi, kemungkinan besar anda pernah menggunakan fitur navigasi belok demi belok di aplikasi Google Maps setidaknya sekali. Anda mencari tujuan atau memasukkan alamat, meninjau rute, menekan tombol mulai, dan memulai perjalanan anda.

Google Navigation SDK memungkinkan Anda melakukan semua ini langsung di aplikasi Anda. SDK ini menghadirkan pengalaman navigasi Google Maps yang tepercaya sekaligus memungkinkan kustomisasi lengkap atas antarmuka pengguna dan pengalaman pengemudi, memastikan keselarasan sempurna dengan merek dan tujuan bisnis Anda.
SDK Navigasi Google akan sangat berguna bagi perusahaan atau bisnis apa pun yang memiliki "aplikasi pengemudi". SDK ini sangat cocok untuk penyedia pengiriman jarak pendek seperti FedEx, UPS, dan layanan pengiriman paket lainnya, serta platform berbagi tumpangan seperti Uber dan Lyft. SDK ini juga dapat bermanfaat bagi perusahaan layanan lapangan, seperti penyedia kabel yang menjadwalkan teknisi untuk instalasi, atau bahkan layanan transportasi medis non-darurat. SDK ini sangat cocok untuk perusahaan mana pun dengan armada pengemudi khusus, di mana navigasi yang akurat dan andal sangat penting untuk keberhasilan operasional.
Mengapa menggunakan SDK Navigasi Google?
Selain kustomisasi, manfaat utama SDK Navigasi adalah dapat menunjukkan kepada pengguna anda cara menuju dari titik A ke titik B dengan aman dan akurat, tanpa meninggalkan aplikasi anda. Ada empat komponen utama dalam hal ini:
Pelacakan Lokasi
Nav SDK memungkinkan pengguna untuk menjaga aplikasi anda tetap berada di latar depan (aplikasi pertama yang dimuat saat anda membuka kunci ponsel) sehingga anda dapat melacak lokasi pengemudi anda secara real-time. Menggunakan aplikasi navigasi pihak ketiga akan mendorong aplikasi anda ke latar belakang, menghentikan pelacakan lokasi dan membuatnya sulit untuk menangani pembaruan dan notifikasi secara real-time.
Keamanan Pengemudi
Pengemudi dapat bernavigasi langsung di dalam aplikasi Anda, menghilangkan kebutuhan untuk beralih ke aplikasi eksternal seperti Google Maps, Waze, atau Apple Maps. Ini membantu mereka tetap fokus pada jalan dan mengurangi gangguan.
Lalu Lintas Real-Time
Nav SDK juga menggunakan informasi lalu lintas real-time yang sama yang digunakan oleh aplikasi Google Maps untuk konsumen, sehingga kondisi lalu lintas dan ETA (Perkiraan Waktu Kedatangan) sangat akurat. Fitur ini membantu pengemudi bernavigasi di sekitar kemacetan lalu lintas dan memilih rute tercepat ke tujuan mereka. Jika pengemudi salah belok atau tersesat, Nav SDK secara otomatis menghitung ulang rute baru untuk memandu mereka kembali ke jalur yang benar.
Konsistensi di Seluruh API Google Maps
Nav SDK menyediakan opsi untuk meneruskan token rute alih-alih menentukan titik arah asal dan tujuan. Ini memungkinkan Anda untuk membuat rute menggunakan API Google Maps yang berbeda, seperti API Rute atau GMPRO, berdasarkan metrik penting bisnis seperti biaya terendah, menghindari tol, atau preferensi sisi jalan. Setelah rute dibuat, anda dapat meneruskannya ke Nav SDK untuk memperjelas kepada pengemudi anda bahwa mereka harus mengikuti jalur persis yang telah anda tentukan. Selain itu, setiap penyimpangan dari rute dapat dideteksi dan dilacak menggunakan RouteChangedListener, memungkinkan pencatatan dan analisis terperinci sesuai kebutuhan.
Bagaimana cara kerja Google Navigation SDK?
Nav SDK berada di dalam aplikasi anda sebagai modul mandiri yang berisi versi 3D dari Google Maps. Saat anda memberikan titik asal (biasanya lokasi pengguna saat ini) dan tujuan ke Nav SDK, ia akan mengambil garis rute dan petunjuk arah mengemudi dari API Rute (ini ditangani secara internal oleh Nav SDK dan anda tidak dikenakan biaya terpisah untuk itu) dan menampilkannya di peta sebagai garis biru. Saat anda mengemudi, Nav SDK secara dinamis memperbarui lokasi anda di peta dan menyesuaikan rute untuk mencerminkan kemajuan anda, secara efektif mempersingkat jarak yang tersisa secara real time.
Saat anda menyimpang dari rute asli, misalnya jika anda melewatkan belokan, sistem akan memanggil API Rute lagi dan menghitung ulang rute baru. Jika rute dengan ETA serupa tersedia, rute tersebut akan ditampilkan sebagai garis poligon berwarna abu-abu pada peta, dan mengikuti rute baru ini secara otomatis akan mengubahnya menjadi biru.
Opsi kustomisasi dengan Google Navigation SDK
Kemampuan kustomisasi Nav SDK memungkinkan anda untuk menciptakan pengalaman navigasi yang intuitif dan konsisten dengan identitas merek anda. Elemen antarmuka pengguna (UI) utama yang dapat anda kustomisasi dengan Nav SDK meliputi:

Kartu belokan: Ubah teks dan warna belokan dan arah yang akan datang agar sesuai dengan desain aplikasi anda.
Kontrol UI peta: Tentukan kontrol dan elemen bawaan mana yang muncul di peta, seperti tombol zoom, kompas, dan indikator lokasi pengguna.
Header navigasi: Sesuaikan tampilan visual header navigasi, termasuk warna latar belakang, elemen teks, dan ikon manuver, untuk memastikan konsistensi dengan tema aplikasi anda.
Lampu lalu lintas dan rambu berhenti: Aktifkan atau nonaktifkan ikon lampu lalu lintas dan rambu berhenti.
Indikator panduan jalur: Sesuaikan warna dan gaya indikator panduan jalur untuk meningkatkan kejelasan dan pemahaman pengguna selama navigasi.
Kontrol khusus: Tambahkan elemen UI khusus pada posisi yang telah ditentukan di tampilan navigasi, seperti header sekunder, footer, atau overlay, untuk memberikan informasi atau fungsionalitas tambahan.
Mungkin lebih mudah untuk mencantumkan apa yang tidak dapat dikustomisasi:
Garis poligon rute. Anda dapat mengaktifkan atau menonaktifkan lalu lintas waktu nyata pada garis poligon, tetapi anda tidak dapat mengubah warna atau gayanya.
Ukuran teks nama jalan. Anda tidak dapat menyesuaikan ukuran teks nama jalan pada peta dasar Google untuk visibilitas yang lebih baik.
Silakan kirim pesan kepada saya di LinkedIn jika anda menemukan komponen yang ingin anda kustomisasi, tetapi tidak bisa.
Harga Google Navigation SDK
Google Navigation SDK menggunakan model harga bayar sesuai penggunaan yang konsisten dengan layanan Google Maps Platform lainnya. Pelanggan ditagih berdasarkan jumlah tujuan yang dikirim ke SDK. 1.000 tujuan pertama setiap bulan gratis, dan setelah itu, biaya per 1.000 tujuan (CPM) bergantung pada total volume bulanan.
| Monthly destinations | Cost per 1,000 destinations |
|---|---|
| Up to 1,000 | Free |
| 1,000 to 4.2 mil | $50.00 CPM |
| 4.2 mil to 16.8 mil | $39.50 CPM |
| 16.8 mil to 84 mil | $28.00 CPM |
| 84 mil + | $20.00 CPM |
Harga awal $50 CPM ($0,05 per tujuan) mungkin tampak tinggi, tetapi sebanding dengan SDK Navigasi Mapbox dan tidak ada biaya tambahan untuk perubahan rute setelah tujuan sudah diambil. Misalnya, anda tidak membayar ekstra jika anda salah belok dan SDK Navigasi menghitung ulang rute untuk anda. Selain itu, tidak ada biaya tambahan untuk menggunakan peta dasar Google di dalam SDK.
Jelas, $50 CPM (atau $0,05 per tujuan) bukan untuk semua orang. Sebagian besar bisnis logistik di AS mencoba untuk menjaga biaya API pihak ketiga di bawah $0,10 per pengiriman, sehingga $0,05 menghabiskan setengah dari anggaran mereka. Ini juga bukan pilihan yang baik untuk produsen otomotif atau perangkat yang ingin menggabungkan SDK Navigasi secara gratis (seperti yang dilakukan Tesla), karena Google tidak menawarkan harga per perangkat (kecuali anda adalah Elon Musk).
Jika anda menangani volume penggunaan yang tinggi, anda dapat bekerja sama dengan mitra Google Maps untuk mendapatkan diskon volume. Lihat halaman harga resmi untuk detailnya.
Cara mengatur Google Navigation SDK
Untuk mulai menggunakan Nav SDK, hal pertama yang perlu anda lakukan adalah mengaturnya di konsol Google Cloud anda.
Buat proyek Google Cloud baru
Pertama, buat proyek baru dari dasbor konsol di https://console.cloud.google.com/ dan beri nama nav-sdk-proj. Klik [CREATE].

Untuk mengaktifkan Google Navigation SDK, buka halaman API & Layanan dengan memilihnya di menu sebelah kiri. Setelah sampai di sana, pilih [+ Aktifkan API dan Layanan] dan cari "Navigation SDK".

Klik tautan [SDK Navigasi] dan tekan tombol [Enable].

Ulangi langkah ini untuk "Google Maps SDK untuk Android" (atau iOS, jika anda mengembangkan aplikasi iPhone) karena kita perlu memberikan akses SDK Navigasi ke peta dasar Google.

Selanjutnya, saat masih berada di proyek nav-sdk-proj, gunakan bilah navigasi sebelah kiri untuk menuju ke halaman Kredensial. Klik tombol [+ Create Credentials] dan pilih opsi [Key API]. Di halaman berikutnya, gunakan menu tarik-turun untuk memastikan bahwa Navigation SDK dan Google Maps SDK untuk Android keduanya diaktifkan.

Klik [Save]. Jika anda kembali ke halaman Kunci dan Kredensial, anda dapat menemukan kunci API baru anda dengan mengklik tautan [Show Key] di sebelah kanan.

Cara menjalankan Google Navigation SDK di Android
Mengaktifkan Nav SDK memerlukan lebih dari sekadar menambahkan beberapa baris kode (lihat tutorial Google Navigation SDK kami untuk panduan langkah demi langkah), tetapi berikut ini adalah gambaran singkat tentang apa yang diperlukan untuk mengintegrasikannya ke dalam aplikasi Android.
Pertama, pastikan Google Play Services dan Maps SDK diaktifkan dengan mencantumkannya sebagai dependensi dalam berkas build.gradle.kts.
api("com.google.android.libraries.navigation:navigation:5.2.3")Kedua, di AndroidManifest.xml, izinkan aplikasi anda mengakses layanan lokasi saat berjalan di layanan latar depan.
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_LOCATION" />Ketiga, impor pustaka yang dibutuhkan ke dalam file MainActivity.kt anda.
import com.google.android.libraries.navigation.NavigationApi
import com.google.android.libraries.navigation.Navigator
import com.google.android.libraries.navigation.NavigationView
import com.google.android.libraries.places.api.model.PlaceTerakhir, cukup jalankan perintah startGuidance() untuk memulai navigasi langkah demi langkah.
private var mNavigator = SuspendRef<Navigator>()
val place: Place = Place.builder()
.setName("685 Pacific Blvd")
.setAddress("Vancouver, BC, Canada")
.setLatLng(LatLng(37.8199, -122.4783))
.build()
val navigator = mNavigator.await()
val waypoint = getWayPoint(place)
val pendingRoute = navigator.setDestination(
waypoint,
RoutingOptions()
.travelMode(TravelMode.DRIVING),
DisplayOptions()
.showStopSigns(true)
.showTrafficLights(true)
)
navigator.startGuidance()Kode awal Google Navigation SDK
Google menyediakan dokumentasi lengkap dan kode awal, tetapi Anda tetap memerlukan insinyur yang berpengalaman dalam pengembangan Android, iOS, atau lintas platform (React Native atau Flutter) untuk mengimplementasikan navigasi langkah demi langkah dalam aplikasi pengemudi Anda dan mendapatkan persetujuan distribusi aplikasi di iOS App Store / Google Play Store.
| Platform | Github Link |
|---|---|
| iOS | https://github.com/googlemaps/ios-navigation-sdk |
| Android | https://github.com/googlemaps-samples/android-navigation-samples |
| React Native | https://github.com/googlemaps/react-native-navigation-sdk |
| Flutter | https://github.com/googlemaps/flutter-navigation-sdk |
Seperti biasa, jangan ragu untuk menghubungi saya jika anda membutuhkan bantuan dalam mengimplementasikan Nav SDK dalam proyek anda.
Apa yang akan dibahas selanjutnya dalam seri tutorial Google Navigation SDK ini
Google Navigation SDK bukan hanya sebuah API, melainkan kumpulan perpustakaan, dokumentasi, dan contoh kode yang memungkinkan Anda mengintegrasikan fitur navigasi langkah demi langkah Google Maps langsung ke dalam aplikasi Anda sendiri.
Meskipun navigasi langkah demi langkah dalam aplikasi telah menjadi salah satu fitur yang paling banyak diminta di Google Maps, kesuksesan Nav SDK masih jauh dari pasti. Perusahaan navigasi dan pemetaan yang sudah mapan seperti TomTom, HERE Maps, dan Mapbox telah menawarkan solusi serupa selama bertahun-tahun, seringkali dengan harga per perangkat yang tidak dapat disaingi oleh Google. Selain itu, Google juga menghadapi persaingan dari fitur navigasi langkah demi langkah gratis yang tersedia di aplikasi Google Maps untuk konsumen.
Meskipun menghadapi tantangan ini, saya yakin Nav SDK akan menemukan posisinya dan tetap menjadi komponen penting dari teknologi Google Maps yang layak untuk dikuasai. Topik-topik yang akan dibahas dalam seri tutorial ini meliputi:
- Mengonfigurasi Nav SDK untuk mengaktifkan petunjuk arah berkendara dalam aplikasi ke tujuan yang telah ditentukan.
- Membiarkan pengguna memilih tujuan mereka menggunakan kotak teks Place Autocomplete.
- Menyesuaikan antarmuka navigasi agar sesuai dengan branding anda, dan
- Menyesuaikan posisi dan visibilitas elemen antarmuka pengguna (UI) kunci untuk meningkatkan kegunaan dan kontrol.
👋 Seperti biasa, jika anda memiliki pertanyaan atau saran untuk saya, silakan hubungi saya atau sapa saya di LinkedIn.
Selanjutnya: Bagian 2: Memulai dengan Google Navigation SDK