Intent Google Maps untuk Android Automotive

Pernyataan penyangkalan

Produk/fitur ini akan berubah dan tidak tunduk pada perjanjian tingkat layanan (SLA) atau kebijakan penghentian penggunaan apa pun. Penerapan ini dapat berubah dalam rilis mendatang.

Terkait software contoh, file data, dan/atau kode sumber yang menyertai dokumentasi ini: Produk ini disediakan "apa adanya" dan tanpa jaminan apa pun, dan Google secara tegas menyangkal setiap dan semua jaminan, baik tersurat, tersirat, statuter, atau lainnya, termasuk, tetapi tidak terbatas pada, jaminan kelayakan untuk diperdagangkan, kesesuaian untuk tujuan tertentu, dan ketiadaan pelanggaran hak apa pun yang terkait dengan produk ini.


Melalui intent Android Automotive, Anda dapat meluncurkan navigasi di Google Maps.

Untuk informasi selengkapnya, lihat Intent Google Maps untuk Android.

Untuk informasi selengkapnya tentang cara menghadirkan aplikasi ke kendaraan yang menjalankan Android Auto atau Android Automotive OS, lihat Android untuk Mobil.

Ringkasan

Halaman ini menjelaskan intent yang dapat Anda gunakan dengan Google Maps untuk Android Automotive. Untuk dokumentasi developer Android yang mendetail, baca:

Permintaan intent

Untuk meluncurkan Google Maps untuk Android Automotive dengan intent, Anda harus membuat objek Intent terlebih dahulu, yang menentukan tindakan, URI, dan paketnya.

  • Tindakan. Semua intent Google Maps dipanggil sebagai tindakan View, ACTION_VIEW.

  • URI. Intent Google Maps menggunakan string yang dienkode URI yang menentukan tindakan yang diinginkan, beserta beberapa data yang akan digunakan untuk melakukan tindakan tersebut.

  • Paket. Memanggil setPackage("com.google.android.apps.maps") memastikan bahwa aplikasi Google Maps untuk Android menangani Intent. Jika paket tidak ditetapkan, sistem akan menentukan aplikasi mana yang dapat menangani Intent. Jika ada beberapa aplikasi yang tersedia, Anda mungkin akan ditanya aplikasi mana yang ingin digunakan.

Setelah membuat Intent, Anda dapat meminta sistem untuk meluncurkan aplikasi terkait dengan sejumlah cara. Metode umum adalah meneruskan Intent ke metode startActivity(). Sistem akan meluncurkan aplikasi yang diperlukan, dalam hal ini, Google Maps, dan memulai Aktivitas yang sesuai.

// Create a Uri from an intent string. Use the result to create an Intent.
Uri mapIntentUri =
Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia");
// Create an Intent from mapIntentUri. Set the action to ACTION_VIEW
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
// Make the Intent explicit by setting the Google Maps package
mapIntent.setPackage("com.google.android.apps.maps");
// Attempt to start an activity that can handle the Intent
startActivity(mapIntent);

Jika sistem tidak dapat mengidentifikasi aplikasi yang dapat merespons Intent, aplikasi Anda dapat mengalami error. Oleh karena itu, verifikasi terlebih dahulu bahwa aplikasi penerima diinstal sebelum Anda menampilkan salah satu intent ini kepada pengguna.

Untuk memverifikasi bahwa aplikasi tersedia untuk menerima intent, panggil resolveActivity() pada objek Intent Anda. Jika hasilnya bukan null, setidaknya ada satu aplikasi yang dapat menangani intent dan aman untuk memanggil startActivity(). Jika hasilnya null, Anda tidak boleh menggunakan intent dan, jika memungkinkan, nonaktifkan fitur yang memanggil intent.

if (mapIntent.resolveActivity(getPackageManager()) != null) {
...
}

Misalnya, untuk meluncurkan navigasi belokan demi belokan ke Taronga Zoo di Sydney, Anda dapat menggunakan kode berikut:

Uri mapIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
if (mapIntent.resolveActivity(getPackageManager()) != null) {
startActivity(mapIntent);
}

String kueri yang dienkode URI

Semua string yang diteruskan ke Maksud Google Maps harus dienkode dalam URI. Misalnya, string "1st & Pike, Seattle" akan menjadi 1st%20%26%20Pike%2C%20Seattle. Spasi dalam string dapat dienkode dengan %20 atau diganti dengan tanda plus (+).

Anda dapat menggunakan metode android.net.Uri parse() untuk mengenkode string. Contoh:

Uri mapIntentUri = Uri.parse("google.navigation:q=" + Uri.encode("1st & Pike, Seattle"));

Meluncurkan navigasi belokan demi belokan

Gunakan intent ini untuk meluncurkan navigasi Google Maps dengan rute belokan demi belokan ke satu atau beberapa alamat atau koordinat yang ditentukan. Rute selalu diberikan dari lokasi pengguna saat ini.

google.navigation:q=a+street+address
google.navigation:q=latitude,longitude
google.navigation:place=placename

Parameter

Untuk meluncurkan navigasi, gunakan place atau q dengan waypoints, yang bersifat opsional. Untuk menandai titik jalan sebagai stasiun pengisian daya secara opsional, lihat Mengirim rencana perjalanan kendaraan listrik ke Google Maps.

  • q menetapkan endpoint untuk penelusuran navigasi. Ini dapat berupa lintang/bujur atau alamat berformat kueri. Jika string kueri yang menampilkan lebih dari satu hasil, hasil pertama akan dipilih.

  • place menetapkan endpoint ke rumah atau kantor. Tentukan rumah untuk menavigasi ke rumah pengguna, dan kantor untuk menavigasi ke tempat kerja pengguna.

  • avoid menetapkan fitur yang harus dihindari rute. avoid bersifat opsional dan dapat ditetapkan ke satu atau beberapa dari:

    • t untuk tol
    • h untuk jalan raya
    • f untuk feri
  • waypoints menentukan satu atau beberapa tempat perantara untuk merutekan rute ke tujuan akhir yang ditentukan oleh q. Anda dapat menentukan beberapa titik jalan dengan menggunakan karakter pipa (|) untuk memisahkan tempat—misalnya, Berlin,Germany|Paris,France. Anda dapat menggunakan sebanyak mungkin titik jalan. Titik jalan akan ditambahkan ke rute dengan urutan yang sama seperti yang tercantum di URL. Setiap titik jalan dapat berupa alamat atau koordinat lintang/bujur yang dipisahkan koma; dan, Anda dapat memiliki alamat dan koordinat lintang/bujur dalam intent yang sama. String harus di-escape URL, sehingga titik jalan seperti "Berlin,Germany|Paris,France" harus dikonversi menjadi Berlin%2CGermany%7CParis%2CFrance.

Contoh

Intent ini akan meminta navigasi belokan demi belokan ke Taronga Zoo, di Sydney Australia:

Uri mapIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Jika Anda tidak ingin membayar tol atau naik feri, Anda dapat meminta pemilihan rute yang mencoba menghindari situasi berikut:

Uri mapIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia&avoid=tf");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Atau, jika Anda lebih suka menavigasi ke rumah, gunakan:

Uri mapIntentUri = Uri.parse("google.navigation:place=home");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Untuk meluncurkan navigasi belokan demi belokan ke tiga alamat berikut secara berurutan, teruskan Taronga Zoo sebagai tujuan akhir q, dan Google Sydney dan Sydney Opera House sebagai titik jalan:

  1. Google Sydney

  2. Sydney Opera House

  3. Taronga Zoo, Sydney Australia

Uri mapIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia&waypoints=Google+Sydney%7CSydney+Opera+House");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Serupa dengan q, Anda dapat merepresentasikan titik jalan mana pun dengan lintang dan bujur yang dipisahkan koma, bukan alamat. Misalnya, untuk meluncurkan navigasi yang sama saat meneruskan lintang bujur untuk Sydney Opera House, bukan alamat:

Uri mapIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia&waypoints=Google+Sydney%7C-33.856159,151.215256");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Mengirim rencana perjalanan kendaraan listrik ke Google Maps

Gunakan intent navigasi multi-tujuan ini untuk menentukan beberapa tujuan sebagai perhentian pengisian daya kendaraan listrik (EV). Intent ini, yang memperluas intent multi-titik jalan, membantu pengemudi mempertahankan daya baterai kendaraan listrik yang memadai untuk mencapai tujuan mereka dengan menyinkronkan informasi SPKLU antara aplikasi perencanaan perjalanan kendaraan listrik dan Google Maps.

Untuk perhentian pengisian daya, intent perjalanan:

  • Harus berisi nama dan lintang-bujur
  • Secara opsional dapat berisi output daya, yang akan digunakan untuk menghitung waktu pengisian daya

Google menggunakan nama stasiun pengisian daya dan lintang-bujur untuk menemukan tempat stasiun pengisian daya yang cocok untuk menampilkan data lengkap seperti jenis konektor, total, kecepatan, dan ketersediaan real-time, metode pembayaran yang didukung, dan lokasi menarik (POI) host. Misalnya, rute mengemudi di dalam tempat parkir luar ruangan untuk bagian akhir navigasi, jam buka, rating. Untuk memastikan bahwa stasiun pengisian daya cocok dengan data Google, gunakan <brand name>, misalnya ChargePoint.

Parameter

Tujuan akhir

Untuk menetapkan SPKLU sebagai tujuan akhir, gunakan:

  • q: Harus berisi nilai lintang-bujur SPKLU.
  • q_type: 1 menentukan bahwa tujuan akhir adalah stasiun pengisian daya.
  • q_name: Nama tujuan akhir. Wajib jika q_type adalah 1.
  • q_power_output_kw: Angka ganda untuk output daya SPKLU dalam kilowatt. Opsional.

Titik jalan

Untuk titik jalan, semua parameter adalah array nilai yang dipisahkan |- dan paralel, dalam urutan yang sama dengan titik jalan, tidak termasuk tujuan akhir. Ketidakcocokan jumlah elemen dalam array paralel diperlakukan sebagai intent yang salah format.

Untuk menambahkan satu atau beberapa titik jalan SPKLU, gunakan parameter berikut, yang semuanya bersifat opsional. Jika salah satu tujuan ditandai sebagai SPKLU, nama titik jalan menjadi wajib untuk tujuan tersebut.

  • waypoints: Daftar titik jalan seperti yang dijelaskan dalam intent navigasi peta belokan demi belokan. Harus berupa nilai lintang-bujur untuk titik jalan SPKLU.

  • waypoint_types: Jenis per titik jalan yang ditentukan sebagai angka. 0 adalah perhentian apa pun (nilai default) dan 1 adalah SPKLU.

  • waypoint_names: Nama titik jalan. Kolom ini wajib diisi untuk stasiun pengisian daya.

  • waypoint_power_outputs_kw: Angka ganda untuk daya stasiun pengisian daya dalam kilowatt. Untuk SPKLU, Anda dapat menentukan nilai output daya waypoint secara opsional, yang digunakan sebagai penggantian jika SPKLU yang cocok tidak ditemukan. Slot kosong berarti tidak ada nilai yang diberikan.

Perilaku pengalaman pengguna (UX)

Untuk intent perjalanan dengan beberapa tujuan, layar ringkasan rute akan ditampilkan, tetapi navigasi tidak dimulai secara otomatis.

Untuk intent yang diformat dengan benar, Google Maps akan menampilkan layar ringkasan rute untuk perjalanan. Layar ringkasan rute akan menampilkan semua titik perhentian dan tujuan akhir dari intent, dengan rekomendasi pengisian daya jika berlaku.

Untuk titik perhentian atau tujuan akhir yang ditandai sebagai SPKLU, Google Maps akan menelusuri tempat yang cocok di database Google.

Jika kecocokan ditemukan, Google Maps akan menggunakan data Google untuk menampilkan stasiun pengisian daya di antarmuka pengguna (UI) dan memberikan rekomendasi pengisian daya untuk stasiun pengisian daya. Jika kecocokan tidak ditemukan, data yang diberikan dalam intent untuk stasiun pengisian daya (lintang-bujur, nama, dan output daya) akan digunakan untuk menampilkan stasiun pengisian daya ini di UI dan memberikan rekomendasi pengisian daya di stasiun pengisian daya ini.

Contoh

Menavigasi ke tujuan akhir melalui beberapa SPKLU

Intent berikut menavigasi ke tujuan akhir, Port Macquarie NSW, melalui dua SPKLU, ChargePoint dan Evie.

Tujuan dalam urutan:

  1. SPKLU ChargePoint (lokasi: -32.9599188,151.6240806, output daya: 6,6 kW)

  2. Stasiun Pengisian Daya Evie (lokasi: -31.9432539,152.4699808, output daya: 350 kW)

  3. Port Macquarie NSW

Uri mapIntentUri =
    Uri.parse(
        "google.navigation:q=Port+Macquarie+NSW"
            + "&waypoints=-32.9599188%2C151.6240806%7C-31.9432539%2C152.4699808"
            + "&waypoint_types=1%7C1"
            + "&waypoint_names=ChargePoint+Charging+Station%7CEvie+Charging+Station"
            + "&waypoint_power_outputs_kw=6.6%7C350");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Output daya tidak diketahui

Jika nilai output daya tidak diketahui, kosongkan slot waypoint_power_outputs_kw yang relevan. Atau jika semua slot kosong, Anda tidak perlu menentukan parameter waypoint_power_outputs_kw.

Tujuan dalam urutan:

  1. SPKLU ChargePoint (lokasi: -32.9599188,151.6240806, output daya: tidak diketahui)

  2. Port Macquarie NSW

Uri mapIntentUri =
    Uri.parse(
        "google.navigation:q=Port+Macquarie+NSW"
            + "&waypoints=-32.9599188%2C151.6240806"
            + "&waypoint_types=1"
            + "&waypoint_names=ChargePoint+Charging+Station");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Menandai tujuan akhir sebagai SPKLU

Untuk menandai tujuan akhir sebagai stasiun pengisian daya, tentukan parameter q_type, q_name, dan q_power_output_kw.

Tujuan dalam urutan:

  1. Taronga Zoo, Sydney Australia

  2. SPKLU ChargePoint (lokasi: -32.9599188,151.6240806, output daya: tidak diketahui)

  3. Stasiun Pengisian Daya Evie (lokasi: -31.9432539,152.4699808, output daya: 350 kW)

Uri mapIntentUri =
    Uri.parse(
        "google.navigation:q=-31.9432539,152.4699808&q_type=1&q_name=Evie+Charging+Station&q_power_output_kw=350"
            + "&waypoints=Taronga+Zoo%2C+Sydney+Australia%7C-32.9599188%2C151.6240806"
            + "&waypoint_types=0%7C1"
            + "&waypoint_names=%7CChargePoint+Charging+Station"
            + "&waypoint_power_outputs_kw=%7C");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Intent tindakan

Intent tindakan berikut dengan antarmuka tersedia:

Tindakan Deskripsi
geo.action:?act=mute Membisukan semua panduan suara navigasi.
geo.action:?act=unmute Membunyikan panduan suara navigasi.
geo.action:?act=show_traffic Menampilkan garis lalu lintas di peta.
geo.action:?act=hide_traffic Menyembunyikan garis lalu lintas di peta.
geo.action:?act=show_satellite Menampilkan citra satelit di peta.
geo.action:?act=hide_satellite Menyembunyikan citra satelit di peta.
geo.action:?act=query_next_turn Google Maps mengucapkan belokan berikutnya (hanya berfungsi saat menavigasi).
geo.action:?act=distance_to_next_turn Google Maps mengucapkan jarak ke belokan berikutnya (hanya berfungsi saat menavigasi).
geo.action:?act=time_to_next_turn Google Maps mengucapkan waktu ke belokan berikutnya (hanya berfungsi saat menavigasi).
geo.action:?act=distance_to_destination Google Maps mengucapkan jarak ke tujuan (hanya berfungsi saat menavigasi).
geo.action:?act=go_back Google Maps akan kembali ke layar sebelumnya di UI.
geo.action:?act=query_current_road Google Maps mengucapkan jalan yang sedang dilalui.
geo.action:?act=query_destination Google Maps akan mengucapkan tujuan.
geo.action:?act=apply_electric_vehicle_connector_filter Menerapkan filter jenis konektor untuk hasil penelusuran SPKLU.
geo.action:?act=remove_electric_vehicle_connector_filter Menghapus filter jenis konektor untuk hasil penelusuran SPKLU.
geo.action:?act=apply_electric_vehicle_payment_filter Menerapkan filter pembayaran untuk hasil penelusuran stasiun pengisian kendaraan listrik umum.
geo.action:?act=remove_electric_vehicle_payment_filter Menghapus filter pembayaran untuk hasil penelusuran stasiun pengisian kendaraan listrik umum.
geo.action:?act=apply_electric_vehicle_fast_charging_filter Menerapkan filter pengisian daya cepat untuk hasil penelusuran SPKLU.
geo.action:?act=remove_electric_vehicle_fast_charging_filter Menghapus filter pengisian daya cepat untuk hasil penelusuran SPKLU.
geo.action:?act=avoid_tolls Jika pengguna sedang menavigasi, beri tahu Google Maps untuk menghindari rute dengan tol. Hal ini dapat menyebabkan rute diubah jika rute saat ini memiliki tarif tol.
geo.action:?act=allow_tolls Jika pengguna sedang menavigasi, beri tahu Google Maps untuk mengizinkan rute dengan tol. Hal ini dapat menyebabkan perubahan rute jika mengizinkan tol akan menghasilkan rute yang lebih baik.
geo.action:?act=avoid_ferries Jika pengguna sedang menavigasi, beri tahu Google Maps untuk menghindari rute dengan kapal feri. Hal ini dapat menyebabkan perubahan rute jika rute aktif saat ini memiliki kapal feri.
geo.action:?act=allow_ferries Jika pengguna sedang menavigasi, beri tahu Google Maps untuk mengizinkan rute dengan feri. Hal ini dapat menyebabkan perubahan rute jika mengizinkan feri akan menghasilkan rute yang lebih baik.
geo.action:?act=avoid_highways Jika pengguna sedang menavigasi, beri tahu Google Maps untuk menghindari rute dengan jalan tol. Hal ini dapat menyebabkan perubahan rute jika rute aktif saat ini memiliki jalan tol.
geo.action:?act=allow_highways Jika pengguna sedang menavigasi, beri tahu Google Maps untuk mengizinkan rute dengan jalan tol. Hal ini dapat menyebabkan perubahan rute jika mengizinkan jalan tol akan menghasilkan rute yang lebih baik.
geo.action:?act=eta Jika pengguna sedang menavigasi, Google Maps akan mengucapkan perkiraan waktu tiba di tujuan (misalnya, pukul 09.15).
geo.action:?act=time_to_destination Jika pengguna sedang menavigasi, Google Maps akan mengucapkan perkiraan waktu ke tujuan (misalnya, 15 menit).
geo.action:?act=exit_navigation Keluar dari navigasi.
geo.action:?act=select_search_result&id=0 Jika hasil penelusuran saat ini ditampilkan di layar (lihat di bawah), mulai navigasi ke hasil n berdasarkan parameter ID yang diberikan. Perhatikan bahwa indeks berbasis 0 (yaitu, intent di atas akan memilih hasil pertama dalam daftar).

Hasil penelusuran yang ditampilkan di layar