Android Automotive Intents için Google Haritalar

Bu ürün/özellik değişecek ve herhangi bir hizmet düzeyi sözleşmesine (HDS) veya kullanımdan kaldırma politikasına tabi değildir. Uygulama, gelecekteki sürümlerde değişebilir.

Bu dokümana eşlik eden örnek yazılım, veri dosyaları ve/veya kaynak koduyla ilgili olarak: Bu ürün "olduğu gibi" ve herhangi bir garanti olmadan sağlanır. Google, açık, zımni, yasal veya başka türlü tüm garantileri (satılabilirlik, belirli bir amaca uygunluk ve bu ürünle ilgili herhangi bir hakkın ihlal edilmemesi garantileri dahil ancak bunlarla sınırlı olmamak üzere) açıkça reddeder.


Android Automotive intent'leri aracılığıyla Google Haritalar'da navigasyonu başlatabilirsiniz.

Daha fazla bilgi için Android için Google Haritalar Intent'leri başlıklı makaleyi inceleyin.

Uygulamanızı Android Auto veya Android Automotive OS çalıştıran araçlara getirme hakkında daha fazla bilgi için Arabalar için Android başlıklı makaleyi inceleyin.

Genel Bakış

Bu sayfada, Android Automotive için Google Haritalar ile kullanabileceğiniz intent'ler açıklanmaktadır. Ayrıntılı Android geliştirici belgeleri için şunları okuyun:

Intent istekleri

Android Automotive için Google Haritalar'ı bir intent ile başlatmak istiyorsanız öncelikle işlemini, URI'sini ve paketini belirterek bir Intent nesnesi oluşturmanız gerekir.

  • İşlem. Tüm Google Haritalar intent'leri Görüntüle işlemi olarak çağrılır (ACTION_VIEW).

  • URI. Google Haritalar intent'leri, istenen bir işlemi belirten URI kodlanmış dizeler ile birlikte işlemi gerçekleştirmek için kullanılacak bazı veriler kullanır.

  • Paket. setPackage("com.google.android.apps.maps") çağrısı, Android için Google Haritalar uygulamasının Intent'i işlemesini sağlar. Paket ayarlanmamışsa sistem, hangi uygulamaların Intent'i işleyebileceğini belirler. Birden fazla uygulama varsa kullanmak istediğiniz uygulamayı seçmeniz istenebilir.

Intent'i oluşturduktan sonra sistemin ilgili uygulamayı başlatmasını çeşitli şekillerde isteyebilirsiniz. Yaygın bir yöntem, Intent'i startActivity() yöntemine iletmektir. Sistem, gerekli uygulamayı (bu durumda Google Haritalar) başlatır ve ilgili etkinliği başlatır.

// 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);

Sistem, intent'e yanıt verebilecek bir uygulama tanımlayamazsa uygulamanız kilitlenebilir. Bu nedenle, bu intent'lerden birini kullanıcıya sunmadan önce öncelikle alıcı uygulamanın yüklü olup olmadığını doğrulayın.

Bir uygulamanın niyeti alıp alamayacağını doğrulamak için Intent nesnenizde resolveActivity() işlevini çağırın. Sonuç null değilse intent'i işleyebilecek en az bir uygulama vardır ve startActivity() çağrılabilir. Sonuç null ise intent'i kullanmamalı ve mümkünse intent'i çağıran özelliği devre dışı bırakmalısınız.

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

Örneğin, Sydney'deki Taronga Hayvanat Bahçesi'ne adım adım yol tarifi başlatmak için aşağıdaki kodu kullanabilirsiniz:

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);
}

URI kodlanmış sorgu dizeleri

Google Haritalar Intent'lerine iletilen tüm dizeler URI kodlamasına sahip olmalıdır. Örneğin, "1st & Pike, Seattle" dizesi 1st%20%26%20Pike%2C%20Seattle olmalıdır. Dizedeki boşluklar %20 ile kodlanabilir veya artı işaretiyle (+) değiştirilebilir.

Dizelerinizi kodlamak için android.net.Uri parse() yöntemini kullanabilirsiniz. Örneğin:

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

Adım adım navigasyonu başlatma

Belirtilen bir veya daha fazla adrese ya da koordinata adım adım yol tarifleri içeren Google Haritalar navigasyonunu başlatmak için bu niyeti kullanın. Yol tarifleri her zaman kullanıcının mevcut konumundan verilir.

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

Parametreler

Navigasyonu başlatmak için place veya q ile waypoints'yi kullanın (isteğe bağlıdır). İsteğe bağlı olarak bir yol işaretini şarj istasyonu olarak işaretlemek için Google Haritalar'a elektrikli araç seyahat planı gönderme başlıklı makaleyi inceleyin.

  • q, gezinme aramalarının bitiş noktasını belirler. Bu, bir enlem/boylam veya sorgu biçimlendirilmiş bir adres olabilir. Birden fazla sonuç döndüren bir sorgu dizesiyse ilk sonuç seçilir.

  • place, uç noktayı eve veya işe ayarlar. Kullanıcının evine gitmek için ev, iş yerine gitmek için iş seçeneğini belirleyin.

  • avoid, rotanın kaçınmaya çalışması gereken özellikleri belirler. avoid isteğe bağlıdır ve aşağıdakilerden biri veya daha fazlası olarak ayarlanabilir:

    • Geçiş ücretleri için t
    • h otoyollar için
    • Feribotlar için f
  • waypoints, yol tarifinin q tarafından belirtilen nihai hedefe yönlendirilmesi için bir veya daha fazla ara yer belirtir. Yerleri ayırmak için dikey çizgi karakterini (|) kullanarak birden fazla yol noktası belirtebilirsiniz (ör. Berlin,Germany|Paris,France). Gerektiği kadar yol noktası kullanabilirsiniz. Yol işaretleri, URL'de listelendikleri sırayla rotaya eklenir. Her yol noktası bir adres veya virgülle ayrılmış enlem/boylam koordinatları olabilir. Ayrıca aynı intent'te adresler ve enlem/boylam koordinatları olabilir. Dizeler URL'den kaçan olmalıdır. Bu nedenle, "Berlin,Almanya|Paris,Fransa" gibi yol işaretleri Berlin%2CGermany%7CParis%2CFrance olarak dönüştürülmelidir.

Örnekler

Bu Intent, Avustralya'nın Sidney kentindeki Taronga Hayvanat Bahçesi'ne adım adım yol tarifi isteğinde bulunur:

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);

Geçiş ücreti ödemeyi veya feribot kullanmayı tercih etmiyorsanız aşağıdaki durumlardan kaçınmaya çalışan bir rota isteğinde bulunabilirsiniz:

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);

Evinize gitmek isterseniz şunu kullanın:

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);

Aşağıdaki üç adrese sırayla adım adım yol tarifi başlatmak için nihai hedef olarak Taronga Hayvanat Bahçesi'ni q, yol işaretleri olarak da Google Sydney ve Sydney Opera Evi'ni girin:

  1. Google Sidney

  2. Sidney Opera Binası

  3. Taronga Zoo, Sidney, Avustralya

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);

q'e benzer şekilde, yol noktalarından herhangi birini adres yerine virgülle ayrılmış enlem ve boylamla temsil edebilirsiniz. Örneğin, adres yerine Sidney Opera Binası'nın enlem ve boylamını göndererek aynı navigasyonu başlatmak için:

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);

Google Haritalar'a elektrikli araç gezi planı gönderme

Bazı hedefleri elektrikli araç (EV) şarj istasyonu olarak belirtmek için bu çok hedefli gezinme amacını kullanın. Çok yol noktası intent'ini genişleten bu intent, sürücülerin elektrikli araç gezi planlama uygulamaları ile Google Haritalar arasında şarj noktası bilgilerini senkronize ederek varış noktalarına ulaşmak için yeterli elektrikli araç pili şarjına sahip olmasına yardımcı olur.

Şarj noktaları için seyahat amaçları:

  • Ad ve enlem-boylam içermelidir.
  • İsteğe bağlı olarak, şarj süresini hesaplamak için kullanılacak güç çıkışını içerebilir

Google, bağlayıcı türleri, toplamlar, hızlar ve anlık müsaitlik durumu, desteklenen ödeme yöntemleri ve barındıran önemli yerler (ÖY) gibi zengin verileri görüntülemek için şarj istasyonu adını ve enlem-boylam koordinatlarını kullanarak eşleşen bir şarj istasyonu yeri bulur. Örneğin, navigasyonun son kısmı için açık otoparklardaki sürüş talimatları, çalışma saatleri, puanlar. Şarj istasyonlarının Google verileriyle iyi eşleştiğinden emin olmak için <brand name> kullanın (ör. ChargePoint).

Parametreler

Son varış noktası

Nihai hedef olarak bir şarj istasyonunu ayarlamak için:

  • q: Şarj istasyonunun enlem-boylam değerini içermelidir.
  • q_type: 1, nihai varış noktasının bir şarj istasyonu olduğunu belirtir.
  • q_name: Son varış noktasının adı. q_type 1 ise gereklidir.
  • q_power_output_kw: Şarj istasyonunun güç çıkışı için kilovat cinsinden çift haneli sayı. İsteğe bağlı.

Referans Noktaları

Yol işaretleri için tüm parametreler, nihai hedef hariç olmak üzere yol işaretleriyle aynı sıradaki paralel, |-ayrılmış değer dizileridir. Paralel dizilerdeki öğe sayısında uyuşmazlık olması, hatalı biçimlendirilmiş bir intent olarak değerlendirilir.

Bir veya daha fazla şarj istasyonu yol noktası eklemek için aşağıdaki parametreleri kullanın. Bunların tümü isteğe bağlıdır. Hedeflerden biri şarj istasyonu olarak işaretlenmişse bu hedef için yol noktası adı zorunlu hale gelir.

  • waypoints: Adım adım navigasyon intent'inde açıklandığı şekilde yol noktalarının listesi. Şarj istasyonu yol noktaları için enlem-boylam değeri olmalıdır.

  • waypoint_types: Bir sayı olarak belirtilen yol noktası başına tür. 0 herhangi bir durak (varsayılan değer) ve 1 şarj istasyonudur.

  • waypoint_names: Yol noktası adları. Bu alan, şarj istasyonları için zorunludur.

  • waypoint_power_outputs_kw: Şarj istasyonu gücü için kilowatt cinsinden çift sayılar. Şarj istasyonları için isteğe bağlı olarak bir yol noktası güç çıkışı değeri belirtebilirsiniz. Bu değer, eşleşen istasyon bulunamazsa yedek olarak kullanılır. Boş slot, herhangi bir değer sağlanmadığı anlamına gelir.

Kullanıcı deneyimi (UX) davranışı

Birden fazla hedefi olan gezi isteklerinde, rotaya genel bakış ekranı gösterilir ancak navigasyon otomatik olarak başlatılmaz.

Doğru biçimlendirilmiş bir intent için Google Haritalar, seyahat için rotaya genel bakış ekranı gösterir. Rotaya genel bakış ekranında, geçerli olduğu durumlarda şarj önerileriyle birlikte tüm yol işaretleri ve intent'teki nihai hedef gösterilir.

Şarj istasyonu olarak işaretlenen tüm yol noktaları veya nihai hedefler için Google Haritalar, Google'ın veritabanında eşleşen bir yer arar.

Eşleşme bulunduğunda Google Haritalar, şarj istasyonunu kullanıcı arayüzünde (UA) görüntülemek ve şarj istasyonu için şarj önerisi sunmak amacıyla Google verilerini kullanır. Eşleşme bulunamazsa bir şarj istasyonu için intent'te sağlanan veriler (enlem-boylam, ad ve güç çıkışı), bu şarj istasyonunu kullanıcı arayüzünde görüntülemek ve bu şarj istasyonunda şarj önerisi sunmak için kullanılır.

Örnekler

Birden fazla şarj istasyonu üzerinden nihai hedefe gitme

Aşağıdaki intent, ChargePoint ve Evie adlı iki şarj istasyonundan geçerek son hedef olan Port Macquarie NSW'ye gider.

Sıralı hedefler:

  1. ChargePoint Şarj İstasyonu (konum: -32.9599188,151.6240806, güç çıkışı: 6,6 kw)

  2. Evie Şarj İstasyonu (konum: -31.9432539,152.4699808, güç çıkışı: 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);

Bilinmeyen güç çıkışı

Güç çıkışı değeri bilinmiyorsa waypoint_power_outputs_kw ile ilgili ilgili alanı boş bırakın. Tüm yuvalar boşsa waypoint_power_outputs_kw parametresini belirtmeniz gerekmez.

Sıralı hedefler:

  1. ChargePoint Şarj İstasyonu (konum: -32.9599188,151.6240806, güç çıkışı: bilinmiyor)

  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);

Nihai varış noktasını şarj istasyonu olarak işaretleme

Nihai varış noktasını şarj istasyonu olarak işaretlemek için q_type, q_name ve q_power_output_kw parametrelerini belirtin.

Sıralı hedefler:

  1. Taronga Zoo, Sidney, Avustralya

  2. ChargePoint Şarj İstasyonu (konum: -32.9599188,151.6240806, güç çıkışı: bilinmiyor)

  3. Evie Şarj İstasyonu (konum: -31.9432539,152.4699808, güç çıkışı: 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);

İşlem amaçları

Arayüzleri olan aşağıdaki işlem intent'leri kullanılabilir:

İşlem Açıklama
geo.action:?act=mute Tüm navigasyon sesli rehberlerinin sesini kapatır.
geo.action:?act=unmute Navigasyon sesli rehberinin sesini açar.
geo.action:?act=show_traffic Haritada trafik çizgilerini gösterir.
geo.action:?act=hide_traffic Haritada trafik çizgilerini gizler.
geo.action:?act=show_satellite Haritada uydu görüntülerini gösterir.
geo.action:?act=hide_satellite Haritadaki uydu görüntülerini gizler.
geo.action:?act=query_next_turn Google Haritalar, bir sonraki dönemeci sesli olarak söyler (yalnızca navigasyon sırasında çalışır).
geo.action:?act=distance_to_next_turn Google Haritalar, bir sonraki dönemece olan mesafeyi söyler (yalnızca navigasyon sırasında çalışır).
geo.action:?act=time_to_next_turn Google Haritalar, bir sonraki dönemece kadar ne kadar süre kaldığını söyler (yalnızca navigasyon sırasında çalışır).
geo.action:?act=distance_to_destination Google Haritalar, hedefe olan mesafeyi sesli olarak söyler (yalnızca navigasyon sırasında çalışır).
geo.action:?act=go_back Google Haritalar, kullanıcı arayüzünde önceki ekrana geri döner.
geo.action:?act=query_current_road Google Haritalar, mevcut yolu okur.
geo.action:?act=query_destination Google Haritalar hedefi sesli olarak söyler.
geo.action:?act=apply_electric_vehicle_connector_filter Elektrikli araç şarj istasyonu arama sonuçları için konnektör türü filtresini uygular.
geo.action:?act=remove_electric_vehicle_connector_filter Elektrikli araç şarj istasyonu arama sonuçları için konnektör türü filtresini kaldırır.
geo.action:?act=apply_electric_vehicle_payment_filter Elektrikli araç şarj istasyonu arama sonuçları için ödeme filtresini uygular.
geo.action:?act=remove_electric_vehicle_payment_filter Elektrikli araç şarj istasyonu arama sonuçları için ödeme filtresini kaldırır.
geo.action:?act=apply_electric_vehicle_fast_charging_filter Elektrikli araç şarj istasyonu arama sonuçları için hızlı şarj filtresini uygular.
geo.action:?act=remove_electric_vehicle_fast_charging_filter Elektrikli araç şarj istasyonu arama sonuçları için hızlı şarj filtresini kaldırır.
geo.action:?act=avoid_tolls Kullanıcı navigasyon yapıyorsa Google Haritalar'a, geçiş ücreti olan rotalardan kaçınmasını söyler. Mevcut rota ücretli yollardan geçiyorsa bu durum rotanın yeniden planlanmasına neden olabilir.
geo.action:?act=allow_tolls Kullanıcı navigasyon yapıyorsa Google Haritalar'a, ücretli yolların bulunduğu rotalara izin vermesini söyler. Otoyol ücretlerine izin verilmesi daha iyi bir rotanın kullanılabilmesine yol açarsa rota yeniden planlanabilir.
geo.action:?act=avoid_ferries Kullanıcı navigasyon yapıyorsa Google Haritalar'a feribotların bulunduğu rotalardan kaçınmasını söyler. Bu, mevcut etkin rotanın feribot içermesi durumunda rotanın yeniden planlanmasına yol açabilir.
geo.action:?act=allow_ferries Kullanıcı navigasyon yapıyorsa Google Haritalar'a feribot içeren rotalara izin vermesini söyler. Feribotlara izin verilmesi daha iyi bir rotanın kullanılabilmesine yol açarsa bu durum rotanın yeniden planlanmasına neden olabilir.
geo.action:?act=avoid_highways Kullanıcı navigasyon yapıyorsa Google Haritalar'a otoyolların bulunduğu rotalardan kaçınma Mevcut etkin rota otoyol içeriyorsa bu, rotanın yeniden yönlendirilmesine neden olabilir.
geo.action:?act=allow_highways Kullanıcı navigasyon yapıyorsa Google Haritalar'a otoyolların bulunduğu rotalara izin vermesini söyler. Otoyollara izin verilmesi daha iyi bir rotanın kullanılabilmesine yol açarsa bu durum rotanın yeniden belirlenmesine neden olabilir.
geo.action:?act=eta Kullanıcı navigasyon yapıyorsa Google Haritalar, hedefe varışla ilgili tahmini süreyi (ör. 09:15) sesli olarak belirtir.
geo.action:?act=time_to_destination Kullanıcı navigasyon yapıyorsa Google Haritalar, hedefe varış için tahmini süreyi (ör. 15 dakika) söyler.
geo.action:?act=exit_navigation Navigasyondan çıkar.
geo.action:?act=select_search_result&id=0 Arama sonuçları şu anda ekranda gösteriliyorsa (aşağıya bakın) sağlanan kimlik parametresine göre n. sonuça gitmeye başlar. Dizin 0 tabanlı olduğundan (yani yukarıdaki intent listedeki ilk sonucu seçer) dikkat edin.

Ekranda gösterilen arama sonuçları