Pertanyaan Umum (FAQ)

Detail produk

Masalah

Jaringan

Data

Penyesuaian UI

Pemilihan rute

Simulator

Workflows

Layanan Mobilitas

Detail produk

Aplikasi Anda harus menerapkan kotak dialog dengan pemberitahuan Persyaratan Layanan Navigation SDK yang harus disetujui setiap pengemudi. Kotak dialog ini memberi pengemudi kesempatan untuk menyetujui Persyaratan Layanan. File teks istilah disediakan dengan Navigation SDK.
Di Android, gunakan metode NavigationApi.showTermsAndConditionsDialog untuk menampilkan kotak dialog yang berisi persyaratan.
Di iOS, panggil GMSNavigationServices.showTermsAndConditionsDialogIfNeededWithCompanyName.
Semua bahasa yang didukung oleh Google Maps Mobile akan otomatis tersedia untuk Navigation SDK. Perangkat memiliki bahasa sistem default dan aplikasi tidak dapat mengubah setelan tersebut; tetapi, aplikasi memiliki akses ke lebih dari 70 bahasa.

Ya. Di Android, setelah dimulai, LocationListener akan terus berjalan di latar belakang. Aplikasi Anda akan terus mengambil posisi jalan dan mempertahankan bearing.

Di iOS, untuk terus menerima pembaruan lokasi posisi dan bearing di latar belakang, terapkan snap jalan dan tetapkan allowsBackgroundLocationUpdates ke YES.

Ya. Saat rute dibuat atau diubah, RouteChangeListener akan menyediakan polyline.

Tidak, Navigation SDK tidak mewajibkan 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 ke Excluded 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 cara Navigation SDK menangani konektivitas yang buruk?
Navigation SDK melakukan pra-cache rute untuk setiap perjalanan. Informasi yang 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 saat ini tidak menawarkan mode offline; 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 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 header untuk melihat setiap manuver.
Bagaimana perkiraan waktu tiba (ETA) disampaikan kepada pengguna aplikasi?

Di Android, gunakan langkah-langkah berikut untuk memberikan informasi perkiraan waktu tiba kepada pengguna aplikasi:

  1. Ambil waktu dan jarak untuk semua titik jalan menggunakan Navigator.getTimeAndDistanceList().
  2. Teruskan informasi ini ke aplikasi klien seperti yang Anda lakukan saat ini untuk ETA pengemudi.

Di iOS, gunakan langkah-langkah berikut untuk memberikan informasi perkiraan waktu tiba kepada pengguna aplikasi:

  1. Ambil segmen dalam perjalanan menggunakan Navigator.getRouteSegments().
  2. Panggil GMSNavigator.timeToNextDestination untuk setiap segmen perjalanan.
  3. Teruskan informasi waktu ke aplikasi klien seperti yang saat ini Anda lakukan untuk perkiraan waktu tiba pengemudi.
Dapatkah RoadSnappedLocationProvider digunakan untuk mendapatkan lokasi snapped driver 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 properti allowsBackgroundLocationUpdates ke TRUE.

Apakah Navigation SDK mendukung pembatasan wilayah?

Tidak. Dalam konteks navigasi, remainingTimeOrdistanceChangeListener memiliki keunggulan dibandingkan pembatasan wilayah sederhana. Pagar virtual mungkin tidak memperhitungkan geometri jalan, dan mungkin tidak berpusat pada titik yang tepat yang menjadi tujuan pengemudi.

Anda dapat memperkirakan fungsi ini menggunakan remainingTimeOrdistanceChangeListener.

  1. Tetapkan nilai minimum untuk menentukan frekuensi callback.
  2. 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. Saat jarak berkurang, 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 penjemputan/penurunan.

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 diambil dari jalan dengan menetapkan GMSRoadSnappedLocationProvider.allowsBackgroundLocationUpdates ke TIDAK.

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 perkiraan waktu tiba (ETA) untuk tujuan akhir?

Ya. Di Android, gunakan metode berikut:

  1. Ambil waktu dan jarak untuk semua titik jalan menggunakan Navigator.getTimeAndDistanceList().
  2. Sembunyikan PWT waypoint saat ini menggunakan NavigationFragment.setEtaCardEnabled(false).
  3. Render PWT tujuan akhir.

Di iOS, gunakan hal berikut:

  1. Hubungi GMSNavigator.routeLegs(read).
  2. Dengan segmen terakhir, panggil GMSNavigator.timeToNextDestination.
  3. Sembunyikan PWT saat ini menggunakan MSMapView.settings.navigationFooterEnabled=NO ke SALAH.
  4. Render PWT tujuan akhir.
Bagaimana cara menyembunyikan pembaruan perkiraan waktu tiba?

Anda dapat menonaktifkan kartu ETA dengan metode berikut:

  • Di Android, gunakan navigationView.setEtaCardEnabled(false).
  • Di iOS, gunakan GMSMapView.settings.navigationFooterEnabled=NO.
Penyesuaian UI mana yang tersedia untuk kartu header dan footer?

Di Android, Anda menggunakan StylingOptions untuk menetapkan gaya warna latar belakang. Untuk menyembunyikan atau menampilkan header dan footer, gunakan fungsi anggota setHeaderEnabled dan setFooterEnabled dari NavigationFragment.

Di iOS, gunakan GMSMapView.settings.navigationHeaderPrimaryBackgroundColor untuk menetapkan gaya visual warna latar belakang. Untuk menyembunyikan atau menampilkan header dan footer, gunakan properti navigationFooterEnabled dan navigationHeaderEnabled dari GMSUISettings.

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 raya dan tol", 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 lintang/bujur. Navigation SDK menampilkan judul kustom dan koordinat di NavigationMap.

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:

  1. Daftarkan pemroses yang memeriksa posisi perangkat di sepanjang rute menggunakan metode Navigator.setRouteChangedListener.
  2. 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 pemrosesnya untuk menerima notifikasi saat rute berubah atau rute baru direkomendasikan:

  1. Pada pengontrol tampilan peta, terapkan protokol GMSNavigatorListener dan protokol GMSRoadSnappedLocationProviderListener.
  2. Implementasikan GMSNavigatorListener.navigatorDidChangeRoute.
  3. Akses rute baru menggunakan properti routeLegs dan currentRouteLeg dari GMSNavigator.
Dapatkah pengemudi keluar dari navigasi tanpa menyelesaikan rute?

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 menyertakan perubahan rute. Metode simulateLocationsAlongExistingRoute mengabaikan perubahan pada rute yang ada.

Di iOS, gunakan GMSLocationSimulator.simulateAlongNewRouteToDestinations untuk menyimulasikan perjalanan yang menyertakan perubahan rute. Jika tidak mengantisipasi perubahan rute, Anda dapat menggunakan GMSLocationSimulator.simulateLocationsAlongExistingRoute atau GMSLocationSimulator.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 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 kembali Aktivitas saat pengguna aplikasi mengklik notifikasi.

Layanan Mobilitas

Apa perbedaan penggunaan Navigation SDK untuk pelanggan Layanan Mobilitas?

Layanan Mobilitas Google Maps Platform menawarkan kumpulan API dan SDK untuk membantu mendukung kebutuhan perusahaan untuk bisnis transportasi dan logistik. Untuk pelanggan Layanan Mobilitas, Navigation SDK biasanya digunakan bersama dengan layanan terkait untuk pengoptimalan rute, pengiriman, pelacakan tugas, analisis armada, dan lainnya. Navigation SDK juga ditagihkan secara berbeda untuk pelanggan Layanan Mobilitas. Untuk mengetahui informasi selengkapnya, lihat dokumentasi Layanan Mobilitas.

Produk mobilitas saat ini hanya tersedia untuk pelanggan tertentu. Hubungi Sales Rep Anda untuk informasi selengkapnya.

Bagaimana cara mengetahui apakah saya adalah pelanggan Layanan Mobilitas?
Jika Anda tidak yakin apakah saat ini Anda menerapkan Navigation SDK sebagai pelanggan Layanan Mobilitas, cari panggilan ReportBillableEvent dalam kode Anda. Hanya pelanggan Layanan Mobilitas yang boleh memanggil metode ReportBillableEvent.

Bagaimana cara penagihan Navigation SDK untuk pelanggan Layanan Mobilitas?
Untuk pelanggan Layanan Mobilitas, penagihan dan harga untuk Navigation SDK bergantung pada perjanjian layanan yang Anda miliki dengan Google Maps Platform. Untuk informasi tentang cara memastikan penerapan Layanan Mobilitas Anda ditagih dengan benar, lihat Validasi penagihan. Untuk informasi tambahan tentang penagihan Layanan Mobilitas, hubungi Sales Rep Anda.

API Navigation SDK manakah yang hanya boleh digunakan oleh pelanggan Layanan Mobilitas?

Ada beberapa API di Navigation SDK yang hanya ditujukan untuk digunakan oleh pelanggan Layanan Mobilitas, yang ditagih oleh Google berdasarkan per transaksi. Jika Anda bukan pelanggan Layanan Mobilitas, metode berikut tidak akan berfungsi:

Jika saya adalah pelanggan Layanan Mobilitas, dapatkah saya juga menggunakan implementasi Navigation SDK non-Layanan Mobilitas?

Ya, pelanggan Layanan Mobilitas dapat menggunakan implementasi Navigation SDK untuk Layanan Mobilitas dan non-Layanan Mobilitas. Namun, Anda hanya dapat menggunakan satu jenis implementasi dalam aplikasi dalam satu waktu. Anda juga perlu membuat project, akun penagihan, dan kunci API Google Cloud baru, terpisah dari project, akun penagihan, dan kunci API yang Anda gunakan dengan penerapan Layanan Mobilitas. Untuk informasi selengkapnya, lihat ringkasan penyiapan Navigation SDK.

Untuk informasi selengkapnya tentang penggunaan implementasi Navigation SDK non-Layanan Mobilitas, termasuk memigrasikan aplikasi dari satu jenis implementasi ke jenis implementasi lainnya, hubungi perwakilan Akun Google Anda.

Catatan: Jika saat ini Anda bukan pelanggan Layanan Mobilitas dan tertarik untuk mempelajari lebih lanjut kumpulan API dan SDK Layanan Mobilitas, hubungi tim penjualan Google Maps Platform.