Pertanyaan Umum (FAQ)
Fakta Produk
- Bagaimana seharusnya Persyaratan Navigation SDK tentang Layanan ditampilkan?
- Bahasa apa saja yang didukung panduan suara?
- Apakah bearing dipertahankan ketika pengemudi keluar dari mode navigasi?
- Apakah polyline tersedia saat mulai atau mengubah rute?
- Apakah pengguna aplikasi harus memiliki Google Maps diinstal di perangkat seluler?
- Apakah Navigation SDK mengidentifikasi tempat parkir di dekat restoran dan tujuan lainnya?
- Apakah Navigation SDK menampilkan arah lalu lintas di jalur saat mendekati titik belok?
- Navigation SDK yang mana API hanya boleh digunakan oleh pelanggan Mobility Services?
Masalah
- Di Xcode 12, aplikasi tidak untuk membangun simulator dengan benar. 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 Kedatangan (PWT) dikomunikasikan kepada pengguna aplikasi?
- Apakah
RoadSnappedLocationProvider
digunakan untuk memperoleh lokasi yang dipaskan saat ini jika navigasi tidak ada di latar depan? - Apakah Navigation SDK mendukung pembatasan wilayah?
- Dapatkah saya menonaktifkan notifikasi saat aplikasi Navigasi berada di latar belakang?
Penyesuaian UI
- Apakah saya dapat memberi kode warna yang terbaik opsi rute?
- Apakah Navigation SDK menampilkan PWT untuk tujuan akhir?
- Bagaimana cara menyembunyikan pembaruan PWT?
- Manakah penyesuaian UI yang yang tersedia untuk kartu header dan footer?
Pemilihan rute
- Dapatkah saya memberikan rute tertentu ke pengemudi atau menghapus rute alternatif?
- Dapatkah saya menunjukkan label lain 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
Fakta Produk
- Aplikasi Anda harus menerapkan kotak dialog yang berisi Persyaratan Navigation SDK pemberitahuan Layanan yang harus diterima oleh setiap pengemudi. Kotak dialog ini memberikan {i>driver<i} kesempatan untuk menyetujui Persyaratan Layanan. File teks persyaratan dilengkapi dengan Navigation SDK.
- Di Android, gunakan
NavigationApi.showTermsAndConditionsDialog
untuk menampilkan kotak dialog yang berisi istilah tersebut. - Di iOS, panggil
GMSNavigationServices.showTermsAndConditionsDialogIfNeededWithCompanyName
. - Bahasa apa pun yang didukung oleh Google Maps Seluler secara otomatis yang tersedia untuk Navigation SDK. Perangkat memiliki bahasa sistem default dan aplikasi tidak dapat mengubah setelan tersebut; namun, aplikasi ini memiliki akses ke lebih dari 70 bahasa.
-
Ya. Di Android, setelah dimulai,
LocationListener
akan terus berlanjut berjalan di latar belakang. Aplikasi Anda terus menyesuaikan posisi jalan dan mempertahankan bearing-nya.Di iOS, untuk terus menerima pembaruan lokasi dari posisi dan bearing di latar belakang, terapkan snap jalan dan setel
allowsBackgroundLocationUpdates
hinggaYES
. -
Ya. Saat rute dibuat atau diubah,
RouteChangeListener
menyediakan polyline. - Tidak, Navigation SDK tidak memerlukan Google Maps Seluler yang akan diinstal di perangkat.
- Tidak, Navigation SDK tidak menyediakan fungsi ini pada saat ini baik.
- Ya. Arah lalu lintas tersedia dan ditampilkan secara default.
- Navigation SDK yang mana API hanya boleh digunakan oleh pelanggan Mobility Services?
-
Ada beberapa API di Navigation SDK yang hanya ditujukan untuk digunakan oleh pelanggan Mobility Services, yang ditagih oleh Google berdasarkan transaksi. Jika Anda bukan pelanggan Layanan Mobilitas, metode berikut tidak beroperasi:
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.
- dSYM tidak dimuat.
-
Jika GDC tidak dimuat:
- Pastikan NavSDK telah diaktifkan di Cloud Console.
- Jika Nav SDK sudah diinstal, tetapi project Anda tidak menggunakan Nav SDK API, hapus Nav SDK dari biner Anda.
Jaringan
- Bagaimana cara Navigation SDK menangani konektivitas yang buruk?
- Navigation SDK melakukan pra-cache rute untuk setiap perjalanan. Informasi {i>pre-cache<i} mencakup informasi {i>routing<i} selama 15-20 menit, dan alternatif rute jika pengemudi menyimpang dari rute. Tujuan Navigation SDK memperkirakan posisi menggunakan GPS perangkat dan sensor.
- Apakah mode offline tersedia?
- Tidak, Navigation SDK tidak menawarkan mode offline saat ini; Namun, SDK menyediakan informasi pra-cache untuk sebuah perjalanan.
Data
- Dapatkah saya mengambil semua perhentian/tujuan dalam perjalanan sebelum memulai rutenya?
-
Ya. Di Android, untuk mengambil rute untuk sebuah 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 rute di bagian {i>header<i}. untuk melihat setiap manuver.
- Bagaimana PWT dikomunikasikan kepada pengguna aplikasi?
-
Di Android, gunakan langkah-langkah berikut untuk memberikan informasi PWT kepada pengguna aplikasi:
- Ambil waktu dan jarak untuk semua titik jalan menggunakan
Navigator.getTimeAndDistanceList()
. - Teruskan informasi ini ke aplikasi klien saat Anda lakukan untuk PWT pengemudi.
Di iOS, gunakan langkah-langkah berikut untuk memberikan informasi PWT kepada pengguna aplikasi:
- Ambil kaki dalam perjalanan menggunakan
Navigator.getRouteSegments()
. - Panggil
GMSNavigator.timeToNextDestination
untuk setiap segmen perjalanan. - Teruskan informasi waktu ke aplikasi klien ketika Anda lakukan untuk PWT pengemudi.
- Ambil waktu dan jarak untuk semua titik jalan menggunakan
-
Apakah
RoadSnappedLocationProvider
dapat digunakan untuk mendapatkan informasi lokasi yang saat ini diikat jika navigasi tidak ada di latar depan? -
Ya. Di Android,
RoadSnappedLocationProvider
berjalan di latar belakang secara default.Di iOS, agar navigasi tetap berjalan di latar belakang, implementasikan pemroses untuk
GMSRoadSnappedLocationProviderListener
, dan setel propertiallowsBackgroundLocationUpdates
menjadiTRUE
. - Apakah Navigation SDK mendukung pembatasan wilayah?
-
Tidak. Dalam konteks navigasi,
remainingTimeOrdistanceChangeListener
memiliki keunggulan dibandingkan pembatasan wilayah sederhana. Pembatasan wilayah mungkin tidak memperhitungkan geometri jalan, dan mungkin tidak berpusat pada titik yang tepat {i>driver <i}sedang melakukan navigasi.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 menit, Anda akan menerima callback saat jarak ke tujuan berubah kali 100 m. Ketika jarak berkurang, Anda bisa memperbarui nilai minimum ini menjadi dan menerima callback yang lebih sering. Kemudian, periksa jarak yang tersisa untuk menentukan apakah Anda cukup dekat dengan lokasi penjemputan/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 ditangkap jalan dengan setelan
GMSRoadSnappedLocationProvider.allowsBackgroundLocationUpdates
menjadi TIDAK.Guna menonaktifkan pemrosesan latar belakang untuk notifikasi lokasi lainnya, panggil
GMSNavigator.sendsBackgroundNotifications(NO)
.
Penyesuaian UI
- Dapatkah saya memberi kode warna untuk opsi rute terbaik?
- Tidak. Pengodean warna untuk opsi rute tertentu tidak didukung untuk saat ini.
- Dapatkah Navigation SDK menampilkan PWT untuk tujuan akhir?
-
Ya. Di Android, gunakan metode berikut:
- Ambil waktu dan jarak untuk semua titik jalan menggunakan
Navigator.getTimeAndDistanceList()
. - Sembunyikan PWT titik jalan saat ini menggunakan
NavigationFragment.setEtaCardEnabled(false)
. - Render PWT tujuan akhir.
Di iOS, gunakan:
- Hubungi
GMSNavigator.routeLegs(read)
. - Di segmen terakhir, panggil
GMSNavigator.timeToNextDestination
. - Sembunyikan PWT titik jalan saat ini menggunakan
MSMapView.settings.navigationFooterEnabled=NO
ke FALSE. - Render PWT tujuan akhir.
- Ambil waktu dan jarak untuk semua titik jalan menggunakan
- Bagaimana cara menyembunyikan pembaruan PWT?
-
Anda dapat menonaktifkan kartu PWT 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 menyetel latar belakang gaya visual warna. Untuk menyembunyikan atau menampilkan {i>header <i}dan {i>footer<i}, gunakansetHeaderEnabled
dansetFooterEnabled
fungsi anggota dariNavigationFragment
.Di iOS, gunakan
GMSMapView.settings.navigationHeaderPrimaryBackgroundColor
untuk menetapkan gaya warna latar belakang. Untuk menyembunyikan atau menampilkan header dan footer gunakannavigationFooterEnabled
dannavigationHeaderEnabled
propertiGMSUISettings
.
Pemilihan rute
- Dapatkah saya memberikan rute tertentu ke 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 raya dan jalan tol,” terhadap permintaan Anda. Menambahkan titik jalan juga akan memengaruhi rute.
- Dapatkah saya menunjukkan label yang berbeda untuk tujuan dengan label default kepada pengguna aplikasi lokasi tujuan?
-
Ya. Di Android, buat
Marker
dengan judul khusus untuk tujuan dan lintang/bujur. Tujuan Navigation SDK menampilkan judul kustom dan koordinat padaNavigationMap
.Di iOS, Anda dapat 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:- Mendaftarkan pemroses yang memeriksa posisi perangkat di sepanjang rute
menggunakan metode
Navigator.setRouteChangedListener
. - Tambahkan kode ke pengendali peristiwa callback,
onRouteChanged
:- Kirim pesan berisi informasi jarak dan PWT yang diperbarui kepada pengguna aplikasi.
- Lacak lokasi perangkat.
- [opsional] Menambahkan fungsi lain yang diperlukan aplikasi untuk menangani saat pengemudi keluar dari rute yang ditentukan.
Di iOS, gunakan
GMSNavigator
dan pemrosesnya untuk menerima notifikasi saat rute berubah atau rute baru direkomendasikan:- Pada pengontrol tampilan peta, implementasikan
GMSNavigatorListener
dan protokolGMSRoadSnappedLocationProviderListener
. - Terapkan
GMSNavigatorListener.navigatorDidChangeRoute
. - Akses rute baru menggunakan
routeLegs
dan ProperticurrentRouteLeg
dariGMSNavigator
.
- Mendaftarkan 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 menyimulasikan perjalanan yang termasuk perubahan rute.simulateLocationsAlongExistingRoute
mengabaikan perubahan pada rute yang ada.Di iOS, gunakan
GMSLocationSimulator.simulateAlongNewRouteToDestinations
untuk melakukan simulasi perjalanan yang mencakup perubahan rute. Jika Anda tidak mengantisipasi perubahan rute, Anda dapat menggunakanGMSLocationSimulator.simulateLocationsAlongExistingRoute
atauGMSLocationSimulator.simulateAlongNewRouteToDestinations
.
Workflows
- Bagaimana cara menutup notifikasi setelah menutup aktivitas yang berisi fragmen navigasi tertentu?
-
Notifikasi navigasi tetap terlihat selama navigasi, saat aktivitas ditutup. Saat kendaraan tiba di tujuan, navigasi akan berhenti, dan notifikasi akan 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 Aktivitas saat pengguna aplikasi mengklik notifikasi.