Android Automotive Intents için Google Haritalar

Sorumluluk Reddi Beyanı

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

Bu belgelere eşlik eden örnek yazılımlar, veri dosyaları ve/veya kaynak kod ile ilgili olarak: Bu ürün "olduğu gibi" ve hiçbir garanti olmaksızın sağlanır ve Google ticarete elverişlilik, belirli bir amaca uygunluk ve bu ürünle ilgili hakların ihlal edilmemesi dahil ancak bunlarla sınırlı olmamak kaydıyla açık, örtülü, yasal veya farklı bir şekilde tüm garantileri açıkça reddeder.


Android Automotive intent'lerini kullanarak Google Haritalar'da navigasyonu başlatabilirsiniz.

Daha fazla bilgi edinmek için Android için Google Haritalar Amaçları başlıklı yardım makalesine bakın.

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 bölümüne bakın.

Genel bakış

Bu sayfada, Android Automotive için Google Haritalar ile kullanabileceğiniz amaçlar açıklanmaktadır. Ayrıntılı Android geliştirici belgeleri için şu makaleleri okuyun:

Amaç istekleri

Android Automotive için Google Haritalar'ı bir niyetle başlatmak için öncelikle eylemi, URI'sını ve paketini belirterek bir Intent nesnesi oluşturmanız gerekir.

  • İşlem. Tüm Google Haritalar amaçları Görüntüleme işlemi ACTION_VIEW olarak adlandırılır.

  • URI. Google Haritalar amaçları, işlemi gerçekleştirmek için kullanılacak bazı verilerle birlikte, istenen bir işlemi belirten URI kodlamalı dizeleri 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 ayarlanmazsa Intent'i işleyebilecek uygulamaları sistem belirler. Birden fazla uygulama varsa hangi uygulamayı kullanmak istediğiniz sorulabilir.

Intent'i oluşturduktan sonra, sistemden ilgili uygulamayı başlatmasını çeşitli şekillerde isteyebilirsiniz. Yaygın bir yöntem, Intent'i [startActivity()] yöntemine geçirmektir. Sistem gerekli uygulamayı (bu örnekte Google Haritalar) başlatır ve ilgili Etkinlik'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, kullanıcıya bu amaçlardan birini sunmadan önce alıcı uygulamanın yüklü olduğunu doğrulayın.

Bir uygulamanın amacı almaya uygun olduğunu doğrulamak için [Intent] nesnenizde [resolveActivity()] yöntemini çağırın. Sonuç null değilse amacı işleyebilecek en az bir uygulama vardır ve [startActivity()] yöntemini çağırmak güvenlidir. Sonuç null ise intent'i kullanmamalı ve mümkünse amacı çağıran özelliği devre dışı bırakmalısınız.

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

Örneğin, Sidney'deki Taronga Hayvanat Bahçesi'nde adım adım navigasyonu 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 kodlamalı sorgu dizeleri

Google Haritalar Amaçlarına iletilen tüm dizeler, URI kodlamalı 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şareti (+) ile 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 birkaç adres ya da koordinat için adım adım yol tarifi alarak Google Haritalar navigasyonunu başlatmak için bu amacı 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, isteğe bağlı olan waypoints ile place veya q kullanın. Bir ara noktayı isteğe bağlı olarak şarj istasyonu olarak işaretlemek için Google Haritalar'a elektrikli araç seyahat planı gönderme başlıklı makaleyi inceleyin.

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

  • place, uç noktayı ev veya iş yeri olarak ayarlar. Kullanıcının evine gitmek için evi ve iş yerine gitmek için iş yerini belirtin.

  • avoid, rotanın kaçınılması gereken özellikleri ayarlar. avoid isteğe bağlıdır ve aşağıdakilerden birine veya daha fazlasına ayarlanabilir:

    • Ücretli geçişler için t
    • Otoyollar için h
    • Feribotlar için f
  • waypoints, yol tariflerini q tarafından belirtilen son hedefe yönlendirmek için bir veya daha fazla ara yer belirtir. Yerleri ayırmak için dikey çizgi karakterini (|) kullanarak birden fazla ara nokta belirtebilirsiniz. Örneğin, Berlin,Germany|Paris,France. İstediğiniz kadar ara nokta kullanabilirsiniz. Ara noktalar rotaya URL'de listelendikleri sırayla eklenir. Her ara nokta, bir adres veya virgülle ayrılmış enlem/boylam koordinatları olabilir ve aynı amaçla adresleri ve enlem/boylam koordinatlarını kullanabilirsiniz. Dizeler URL çıkışlı olmalıdır. Bu nedenle "Berlin,Almanya|Paris,Fransa" gibi ara noktalar Berlin%2CGermany%7CParis%2CFrance biçimine dönüştürülmelidir.

Örnekler

Bu Intent, Sidney Avustralya'daki Taronga Hayvanat Bahçesi'ne adım adım navigasyon izni isteyecek:

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

Ücretli geçiş ödemesi kullanmamayı veya feribota binmemeyi tercih ediyorsanız aşağıdaki durumlardan kaçınmak için çalışan bir rota bulma 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);

Bunun yerine eve 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 üç adres için sırayla adım adım navigasyonu başlatmak için son varış noktası q olarak Taronga Hayvanat Bahçesi'ni, referans noktası olarak Google Sidney ve Sidney Opera Binası'nı geçin:

  1. Google Sidney

  2. Sidney Opera Binası

  3. Taronga Hayvanat Bahçesi, 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 işlevine benzer şekilde, herhangi bir ara noktayı adres yerine virgülle ayrılmış bir enlem ve boylam ile temsil edebilirsiniz. Örneğin, Sidney Opera Binası'nın adres yerine enlem boylamını aktarırken 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ç seyahat planı gönderme

Bazı hedefleri elektrikli araç (EV) şarj noktası olarak belirtmek için bu çok hedefli navigasyon amacını kullanın. Çok ara nokta amacını geliştiren bu amaç, elektrikli araç seyahat planlama uygulamaları ile Google Haritalar arasında şarj noktası bilgilerini senkronize ederek sürücülerin hedeflerine ulaşmak için yeterli elektrikli araç pili şarjı sağlamasına yardımcı olur.

Şarj durakları için yolculuk amaçları:

  • Ad ve enlem-boylam içermelidir
  • Şarj süresini hesaplamak için kullanılan isteğe bağlı olarak güç çıkışı içerebilir

Google; bağlayıcı türleri, toplamlar, hızlar ve gerçek zamanlı kullanılabilirlik, desteklenen ödeme yöntemleri ve önemli yerler (ÖY) gibi zengin verileri görüntülemek amacıyla eşleşen bir şarj istasyonu yeri bulmak için şarj istasyonu adını ve enlem-boylamı kullanır. Örneğin, navigasyonun son kısmı için açık hava otoparklarında yol tarifleri, çalışma saatleri, puanlar. Şarj istasyonlarının Google verileriyle uyumlu olmasını sağlamak için <brand name> kullanın (örneğin, ChargePoint).

Parametreler

Son varış noktası

Bir şarj istasyonunu nihai varış noktası olarak ayarlamak için şunları kullanın:

  • q: Şarj istasyonunun enlem-boylam değerini içermelidir.
  • q_type: 1, son hedefin 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 sayı. İsteğe bağlı.

Referans Noktaları

Ara noktalar için parametrelerin tümü, nihai hedef hariç olmak üzere, ara noktalarla aynı sırada olan paralel ve | ile ayrılmış değer dizileridir. Paralel dizilerdeki öğe sayılarındaki uyuşmazlık, hatalı biçimlendirilmiş amaç olarak değerlendirilir.

Bir veya daha fazla şarj istasyonu ara noktası eklemek için aşağıdaki parametreleri kullanın. Bu parametrelerin tümü isteğe bağlıdır. Hedeflerden biri şarj istasyonu olarak işaretlenirse söz konusu hedef için ara nokta adı zorunlu hale gelir.

  • waypoints: Adım adım navigasyon amacında açıklandığı gibi ara noktaların listesi. Şarj istasyonu ara noktaları için enlem-boylam değeri olmalıdır.

  • waypoint_types: Sayı olarak belirtilen, referans noktası başına tür sayısı. 0 herhangi bir duraktır (varsayılan değer), 1 ise şarj istasyonudur.

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

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

Kullanıcı deneyimi davranışı

Birden çok varış noktası olan gezi amaçları için rotaya genel bakış ekranı gösterilir ancak navigasyon otomatik olarak başlamaz.

Niyetiniz doğru biçimlendirilmişse Google Haritalar, gezi için rotaya genel bakış ekranı sunar. Rotaya genel bakış ekranı, tüm ara noktaları ve uygun durumlarda şarj önerileriyle birlikte amaçtaki son hedefi görüntüler.

Google Haritalar, şarj istasyonu olarak işaretlenen ara noktalar veya son hedefler için Google'ın veritabanında eşleşen bir yer arar.

Eşleşme bulunduğunda Google Haritalar, Google verilerini kullanarak şarj istasyonunu kullanıcı arayüzünde (UI) görüntüler ve şarj istasyonu için şarj önerisi sunar. Eşleşme bulunmazsa bir şarj istasyonunun amacında sağlanan veriler (enlem, boylam, ad ve güç çıkışı) kullanıcı arayüzünde bu şarj istasyonunu görüntülemek ve bu şarj istasyonunda şarj önerisi sunmak için kullanılır.

Örnekler

Birden fazla şarj istasyonunu kullanarak son varış noktanıza gidin

Aşağıdaki amaç, iki şarj istasyonu olan ChargePoint ve Evie aracılığıyla son varış noktası Port Macquarie NSW'ye gidiyor.

Sırayla varış noktaları:

  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. Macquarie NSW Limanı

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 ilgili waypoint_power_outputs_kw yuvasını boş bırakın. Tüm alanlar boşsa waypoint_power_outputs_kw parametresini belirtmenize gerek yoktur.

Sırayla varış noktaları:

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

  2. Macquarie NSW Limanı

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

Son varış noktasını şarj istasyonu olarak işaretleyin

Son hedefi şarj istasyonu olarak işaretlemek için q_type, q_name ve q_power_output_kw parametrelerini belirtin.

Sırayla varış noktaları:

  1. Taronga Hayvanat Bahçesi, 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ışı: 350kw)

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