Pertanyaan Umum (FAQ)
Detail produk
- Bagaimana cara menampilkan pemberitahuan Persyaratan Layanan Navigation SDK?
- Bahasa apa saja yang didukung panduan suara?
- Apakah arah tetap dipertahankan saat pengemudi keluar dari mode navigasi?
- Apakah polyline tersedia saat memulai atau mengubah rute?
- Apakah pengguna aplikasi perlu menginstal Google Maps Mobile?
- Dapatkah Navigation SDK mengidentifikasi tempat parkir di dekat restoran dan tujuan lainnya?
- Apakah Navigation SDK menampilkan arah lalu lintas di jalur saat mendekati titik belokan?
Masalah
- Di Xcode 12, aplikasi tidak mem-build dengan benar untuk simulator. Bagaimana cara memperbaikinya?
GMSMapView
tidak dimuat.
Jaringan
Data
- Dapatkah saya mengambil semua perhentian/tujuan dalam perjalanan sebelum memulai rute?
- Apakah panduan rute belokan demi belokan tersedia di awal rute?
- Bagaimana Perkiraan Waktu Tiba (ETA) disampaikan kepada pengguna aplikasi?
- Dapatkah
RoadSnappedLocationProvider
digunakan untuk mendapatkan lokasi terpetakan pengemudi saat ini jika navigasi tidak berada di latar depan? - Apakah Navigation SDK mendukung geofencing?
- Dapatkah saya menonaktifkan notifikasi saat aplikasi Navigasi berada di latar belakang?
Penyesuaian UI
- Dapatkah saya memberi kode warna pada opsi rute terbaik?
- Dapatkah Navigation SDK menampilkan PWT untuk tujuan akhir?
- Bagaimana cara menyembunyikan info terbaru tentang perkiraan waktu tiba?
- Penyesuaian UI mana yang tersedia untuk kartu header dan footer?
Pemilihan rute
- Dapatkah saya memberikan rute tertentu kepada pengemudi atau menghapus rute alternatif?
- Dapatkah saya menampilkan label yang berbeda kepada pengemudi untuk tujuan selain lokasi tujuan default?
- Dapatkah saya menggunakan Navigation SDK untuk melacak penyimpangan dari jalur yang ditentukan?
- Dapatkah pengemudi keluar dari navigasi tanpa menyelesaikan rute?
Simulator
Workflows
Layanan Mobilitas
- Apa perbedaan penggunaan Navigation SDK bagi pelanggan Layanan Mobilitas?
- Bagaimana cara mengetahui apakah saya adalah pelanggan Layanan Mobilitas?
- Bagaimana cara penagihan Navigation SDK untuk pelanggan Layanan Mobilitas?
- API Navigation SDK mana yang hanya boleh digunakan oleh pelanggan Layanan Mobilitas?
- Jika saya adalah pelanggan Layanan Mobilitas, dapatkah saya juga menggunakan penerapan Navigation SDK non-Layanan Mobilitas?
Detail produk
- Aplikasi Anda harus menerapkan dialog dengan pemberitahuan Persyaratan Layanan Navigation SDK yang harus disetujui oleh setiap pengemudi. Dialog ini memberi pengemudi kesempatan untuk menyetujui Persyaratan Layanan. File teks persyaratan disediakan bersama Navigation SDK.
- Di Android, gunakan metode
NavigationApi.showTermsAndConditionsDialog
untuk menampilkan dialog yang berisi persyaratan. - Di iOS, panggil
GMSNavigationServices.showTermsAndConditionsDialogIfNeededWithCompanyName
. - Semua bahasa yang didukung oleh Google Maps Mobile otomatis tersedia untuk Navigation SDK. Perangkat memiliki bahasa sistem default dan aplikasi tidak dapat mengubah setelan tersebut; namun, aplikasi memiliki akses ke lebih dari 70 bahasa.
-
Ya. Di Android, setelah dimulai,
LocationListener
akan terus berjalan di latar belakang. Aplikasi Anda akan terus menyelaraskan posisi dengan jalan dan mempertahankan arah.Di iOS, untuk terus menerima pembaruan lokasi posisi dan arah di latar belakang, terapkan penyelarasan jalan dan tetapkan
allowsBackgroundLocationUpdates
keYES
. -
Ya. Saat rute dibuat atau diubah,
RouteChangeListener
akan menyediakan polyline. - Tidak, Navigation SDK tidak mengharuskan Google Maps Mobile diinstal di perangkat.
- Tidak, Navigation SDK tidak menyediakan fungsi ini saat ini.
- Ya. Arah lalu lintas tersedia dan ditampilkan secara default.
Masalah
- Di Xcode 12, aplikasi tidak mem-build dengan benar untuk simulator. Bagaimana cara memperbaikinya?
-
Untuk memperbaiki masalah ini, buka Setelan Build project Xcode Anda, lalu tambahkan
arm64
keExcluded Architectures
hanya untuk build "Simulator iOS".Untuk informasi lebih lanjut, lihat thread StackOverflow berikut.
- GMSMapView tidak dimuat.
-
Jika GMSMapView tidak dimuat:
- Pastikan NavSDK diaktifkan di Cloud Console.
- Jika Nav SDK diinstal, tetapi project Anda tidak menggunakan Nav SDK API, hapus dari biner Anda.
Jaringan
- Bagaimana Navigation SDK menangani konektivitas yang buruk?
- Navigation SDK melakukan pra-cache rute untuk setiap perjalanan. Informasi yang telah di-cache sebelumnya mencakup informasi pemilihan rute selama 15-20 menit, dan alternatif rute jika pengemudi menyimpang dari rute. Navigation SDK memperkirakan posisi menggunakan GPS dan sensor perangkat.
- Apakah mode offline tersedia?
- Tidak, Navigation SDK tidak menawarkan mode offline saat ini; namun, SDK menyediakan informasi yang telah di-cache sebelumnya untuk perjalanan.
Data
- Dapatkah saya mengambil semua perhentian/tujuan dalam perjalanan sebelum memulai rute?
-
Ya. Di Android, untuk mengambil petunjuk arah rute, panggil
Navigator.getRouteSegments()
.Di iOS, panggil
GMSNavigator.routeLegs(read)
. - Apakah panduan rute belokan demi belokan tersedia di awal rute?
- Ya. Navigation SDK menyediakan daftar segmen rute. Selain itu, pengemudi dapat menggeser kartu petunjuk arah di header untuk melihat setiap manuver.
- Bagaimana ETA dikomunikasikan kepada pengguna aplikasi?
-
Di Android, gunakan langkah-langkah berikut untuk memberikan informasi perkiraan waktu tiba kepada pengguna aplikasi:
- Ambil waktu dan jarak untuk semua titik jalan menggunakan
Navigator.getTimeAndDistanceList()
. - Teruskan informasi ini ke aplikasi klien seperti yang Anda lakukan untuk perkiraan waktu tiba pengemudi.
Di iOS, gunakan langkah-langkah berikut untuk memberikan informasi perkiraan waktu tiba kepada pengguna aplikasi:
- Ambil segmen dalam perjalanan menggunakan
Navigator.getRouteSegments()
. - Panggil
GMSNavigator.timeToNextDestination
untuk setiap segmen perjalanan. - Teruskan informasi waktu ke aplikasi klien seperti yang Anda lakukan untuk perkiraan waktu tiba pengemudi.
- Ambil waktu dan jarak untuk semua titik jalan menggunakan
-
Dapatkah
RoadSnappedLocationProvider
digunakan untuk mendapatkan lokasi terpetakan pengemudi saat ini jika navigasi tidak berada di latar depan? -
Ya. Di Android,
RoadSnappedLocationProvider
berjalan di latar belakang secara default.Di iOS, agar navigasi tetap berjalan di latar belakang, terapkan pemroses untuk
GMSRoadSnappedLocationProviderListener
, dan tetapkan propertiallowsBackgroundLocationUpdates
keTRUE
. - Apakah Navigation SDK mendukung geofencing?
-
Tidak. Dalam konteks navigasi,
remainingTimeOrdistanceChangeListener
memiliki keunggulan dibandingkan geofence. Geofence mungkin tidak memperhitungkan geometri jalan, dan mungkin tidak berpusat pada titik persis yang dituju pengemudi.Anda dapat memperkirakan fungsi ini menggunakan
remainingTimeOrdistanceChangeListener
.- Tetapkan nilai minimum untuk menentukan frekuensi callback.
- Periksa jarak yang tersisa ke tujuan.
Misalnya, jika Anda menetapkan nilai minimum ke 100 m, Anda akan menerima callback saat jarak ke tujuan berubah sebesar 100 m. Seiring berkurangnya jarak, Anda dapat memperbarui nilai minimum ini ke nilai yang lebih kecil dan menerima callback yang lebih sering. Kemudian, periksa jarak yang tersisa untuk menentukan apakah Anda cukup dekat dengan lokasi pengambilan/pengantaran.
Di iOS, terapkan pemroses
GMSNavigatorListener.didUpdateRemainingDistance
untuk mengelola jarak antar-notifikasi. - Dapatkah saya menonaktifkan notifikasi saat aplikasi Navigasi berada di latar belakang?
-
Ya. Di Android, gunakan
Navigator.setHeadsUpNotificationEnabled
untuk mengontrol notifikasi. Metode ini memiliki argumen boolean.FALSE
menonaktifkan notifikasi;TRUE
mengaktifkan notifikasi.Di iOS, nonaktifkan notifikasi latar belakang untuk lokasi yang disesuaikan dengan jalan dengan menetapkan
GMSRoadSnappedLocationProvider.allowsBackgroundLocationUpdates
ke NO.Untuk menonaktifkan pemrosesan latar belakang untuk notifikasi lokasi lainnya, panggil
GMSNavigator.sendsBackgroundNotifications(NO)
.
Penyesuaian UI
- Dapatkah saya memberi kode warna pada opsi rute terbaik?
- Tidak. Pemberian kode warna pada opsi rute tertentu saat ini tidak didukung.
- Dapatkah Navigation SDK menampilkan ETA untuk tujuan akhir?
-
Ya. Di Android, gunakan metode berikut:
- Ambil waktu dan jarak untuk semua titik jalan menggunakan
Navigator.getTimeAndDistanceList()
. - Menyembunyikan PWS titik jalan saat ini menggunakan
NavigationFragment.setEtaCardEnabled(false)
. - Merender PWT tujuan akhir.
Di iOS, gunakan yang berikut:
- Hubungi
GMSNavigator.routeLegs(read)
. - Dengan leg terakhir, panggil
GMSNavigator.timeToNextDestination
. - Menyembunyikan PWS dari titik jalan saat ini menggunakan
MSMapView.settings.navigationFooterEnabled=NO
ke FALSE. - Merender PWT tujuan akhir.
- Ambil waktu dan jarak untuk semua titik jalan menggunakan
- Bagaimana cara menyembunyikan info terbaru tentang perkiraan waktu tiba?
-
Anda dapat menonaktifkan kartu info perkiraan waktu tiba dengan metode berikut:
- Di Android, gunakan
navigationView.setEtaCardEnabled(false)
. - Di iOS, gunakan
GMSMapView.settings.navigationFooterEnabled=NO
.
- Di Android, gunakan
-
Di Android, Anda menggunakan
StylingOptions
untuk menetapkan gaya warna latar belakang. Untuk menyembunyikan atau menampilkan header dan footer, gunakan fungsi anggotasetHeaderEnabled
dansetFooterEnabled
dariNavigationFragment
.Di iOS, gunakan
GMSMapView.settings.navigationHeaderPrimaryBackgroundColor
untuk menyetel gaya warna latar belakang. Untuk menyembunyikan atau menampilkan header dan footer, gunakan propertinavigationFooterEnabled
dannavigationHeaderEnabled
dariGMSUISettings
.
Pemilihan rute
- Dapatkah saya memberikan rute tertentu kepada pengemudi atau menghapus rute alternatif?
- Tidak. Secara default, beberapa rute disediakan dan rute tercepat memiliki prioritas. Anda dapat memengaruhi rute default dengan menambahkan preferensi, seperti "hindari jalan tol dan jalan bebas hambatan", ke permintaan Anda. Menambahkan titik jalan juga memengaruhi rute.
- Dapatkah saya menampilkan label yang berbeda untuk tujuan kepada pengguna aplikasi daripada lokasi tujuan default?
-
Ya. Di Android, buat
Marker
dengan judul kustom untuk tujuan dan garis lintang/bujur. Navigation SDK menampilkan judul kustom dan koordinat diNavigationMap
.Di iOS, Anda membuat dan menampilkan
GMSMarker
untuk tujuan. - Dapatkah saya menggunakan Navigation SDK untuk melacak penyimpangan dari jalur yang ditentukan?
-
Ya. Di Android, gunakan
Navigator.setRouteChangedListener
untuk menerima notifikasi saat rute berubah atau rute baru direkomendasikan:- Daftarkan pemroses yang memeriksa posisi perangkat di sepanjang rute
menggunakan metode
Navigator.setRouteChangedListener
. - Tambahkan kode ke pengendali peristiwa callback,
onRouteChanged
:- Kirim pesan kepada pengguna aplikasi dengan informasi PWT dan jarak yang diperbarui.
- Melacak lokasi perangkat.
- [opsional] Tambahkan fungsi lain yang diperlukan oleh aplikasi Anda untuk menangani saat pengemudi keluar dari rute yang ditentukan.
Di iOS, gunakan
GMSNavigator
dan pendengarnya untuk menerima notifikasi saat rute berubah atau rute baru direkomendasikan:- Pada pengontrol tampilan peta, terapkan protokol
GMSNavigatorListener
dan protokolGMSRoadSnappedLocationProviderListener
. - Implementasikan
GMSNavigatorListener.navigatorDidChangeRoute
. - Akses rute baru menggunakan properti
routeLegs
dancurrentRouteLeg
dariGMSNavigator
.
- Daftarkan pemroses yang memeriksa posisi perangkat di sepanjang rute
menggunakan metode
-
Ya. Di Android, panggil metode
Navigator.stopGuidance()
untuk menghentikan navigasi.Di iOS, panggil
GMSNavigator.clearDestinations
.
Simulator
- Apakah simulator mendukung perubahan rute?
-
Ya. Di Android, panggil
simulateLocationsAlongNewRoute
untuk mensimulasikan perjalanan yang mencakup perubahan rute. MetodesimulateLocationsAlongExistingRoute
mengabaikan perubahan pada rute yang ada.Di iOS, gunakan
GMSLocationSimulator.simulateAlongNewRouteToDestinations
untuk menyimulasikan perjalanan yang mencakup perubahan rute. Jika Anda tidak mengantisipasi perubahan rute apa pun, Anda dapat menggunakanGMSLocationSimulator.simulateLocationsAlongExistingRoute
atauGMSLocationSimulator.simulateAlongNewRouteToDestinations
.
Workflows
- Bagaimana cara menutup notifikasi setelah menutup aktivitas yang berisi fragmen navigasi?
-
Notifikasi navigasi tetap terlihat selama navigasi, saat aktivitas ditutup. Saat kendaraan tiba di tujuan, navigasi berhenti, dan notifikasi menghilang.
Untuk menangani klik pada notifikasi, gunakan
Navigator.startGuidance(intent resumeIntent)
.resume intent
diaktifkan saat pengguna aplikasi mengklik notifikasi. Biasanya,Navigator.startguidance(getIntent())
dipanggil dari Aktivitas utama, yang memanggil kembali Aktivitas saat pengguna aplikasi mengklik notifikasi.
Layanan Mobilitas
Layanan Mobilitas Google Maps Platform menawarkan kumpulan API dan SDK untuk membantu mendukung kebutuhan perusahaan transportasi dan logistik. Untuk pelanggan Mobility Services, Navigation SDK biasanya digunakan bersama dengan layanan terkait untuk pengoptimalan rute, pengiriman, pelacakan tugas, analisis armada, dan lainnya. Navigation SDK juga ditagih secara berbeda untuk pelanggan Layanan Mobilitas. Untuk mengetahui informasi selengkapnya, lihat dokumentasi Mobility Services.
Produk mobilitas hanya tersedia untuk pelanggan tertentu. Hubungi Sales Rep Anda untuk mendapatkan informasi selengkapnya.
ReportBillableEvent
dalam kode Anda. Hanya pelanggan Layanan Mobilitas yang boleh memanggil metode ReportBillableEvent
.
Ada beberapa API di Navigation SDK yang hanya ditujukan untuk digunakan oleh pelanggan Mobility Services, yang ditagih oleh Google berdasarkan per transaksi. Jika Anda bukan pelanggan Mobility Services, metode berikut tidak akan berfungsi:
Ya, pelanggan Layanan Mobilitas dapat menggunakan implementasi Navigation SDK untuk Layanan Mobilitas dan non-Layanan Mobilitas. Namun, Anda hanya dapat menggunakan satu jenis penerapan dalam satu aplikasi dalam satu waktu. Anda juga perlu membuat project Google Cloud, akun penagihan, dan kunci API baru, yang terpisah dari yang Anda gunakan dengan penerapan Layanan Mobilitas. Untuk mengetahui informasi selengkapnya, lihat ringkasan penyiapan Navigation SDK.
Untuk mengetahui informasi selengkapnya tentang penggunaan implementasi Navigation SDK non-Layanan Mobilitas, termasuk memigrasikan aplikasi dari satu jenis implementasi ke jenis lainnya, hubungi perwakilan akun Google Anda.
Catatan: Jika Anda bukan pelanggan Layanan Mobilitas dan tertarik untuk mempelajari lebih lanjut kumpulan API dan SDK Layanan Mobilitas, hubungi tim penjualan Google Maps Platform.