Mapy Google na Androida Automotive

Ta usługa lub funkcja ulegnie zmianie i nie będzie objęta żadną gwarancją jakości usług ani żadnymi zasadami wycofywania. Implementacja może ulec zmianie w kolejnych wersjach.

Jeśli chodzi o próbne oprogramowanie, pliki danych lub kod źródłowy dołączone do tej dokumentacji: ten produkt jest dostarczany „w stanie takim, w jakim jest”, bez jakichkolwiek gwarancji. Google wyraźnie wyklucza wszelkie gwarancje, wyraźne, dorozumiane, ustawowe lub inne, w tym między innymi gwarancje przydatności do określonego celu i nienaruszania praw osób trzecich.


Za pomocą intencji Androida Automotive możesz uruchomić nawigację w Mapach Google.

Więcej informacji znajdziesz w artykule Intencja Map Google na Androida.

Więcej informacji o przenoszeniu aplikacji na pojazdy korzystające z Androida Auto lub systemu operacyjnego Android Automotive znajdziesz w artykule Android w samochodach.

Omówienie

Na tej stronie opisano intencje, których możesz używać w Mapach Google na Androida Automotive. Szczegółowe informacje znajdziesz w dokumentacji dla deweloperów Androida:

Żądania dotyczące intencji

Aby uruchomić Mapy Google na Androidzie Automotive za pomocą intencji, musisz najpierw utworzyć obiekt Intent, określając jego działanie, identyfikator URI i pakiet.

  • Działanie. Wszystkie intencje Map Google są wywoływane jako działanie wyświetlania.ACTION_VIEW

  • Identyfikator URI. Intencje Map Google używają ciągów znaków zakodowanych w identyfikatorze URI, które określają żądane działanie wraz z niektórymi danymi potrzebnymi do jego wykonania.

  • Pakiet. Wywołanie setPackage("com.google.android.apps.maps") zapewnia, że aplikacja Mapy Google na Androida obsłuży ten zamiar. Jeśli pakiet nie jest ustawiony, system określa, które aplikacje mogą obsługiwać intencję. Jeśli dostępnych jest kilka aplikacji, może pojawić się pytanie, której z nich chcesz użyć.

Po utworzeniu intencji możesz poprosić system o uruchomienie odpowiedniej aplikacji na kilka sposobów. Typową metodą jest przekazanie intencji do metody startActivity(). System uruchomi niezbędną aplikację, w tym przypadku Mapy Google, i odpowiednią Aktywność.

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

Jeśli system nie może zidentyfikować aplikacji, która może odpowiedzieć na intencję, aplikacja może się zawiesić. Dlatego zanim przedstawisz użytkownikowi jeden z tych intencji, najpierw sprawdź, czy aplikacja odbiorcza jest zainstalowana.

Aby sprawdzić, czy aplikacja może odebrać intencję, wywołaj funkcję resolveActivity() w obiekcie Intent. Jeśli wynik jest niezerowany, istnieje co najmniej 1 aplikacja, która może obsłużyć intencję, i można bezpiecznie wywołać funkcję startActivity(). Jeśli wynik jest pusty, nie używaj intencji i w miarę możliwości wyłącz funkcję, która wywołuje intencję.

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

Aby na przykład uruchomić nawigację krok po kroku do Taronga Zoo w Sydney, możesz użyć tego kodu:

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

Ciągi zapytań zakodowane w identyfikatorze URI

Wszystkie ciągi przekazywane do Map Google Intents muszą być zakodowane w formacie URI. Na przykład ciąg „1st & Pike, Seattle” powinien zostać zastąpiony przez 1st%20%26%20Pike%2C%20Seattle. Spacje w ciągu można zakodować za pomocą znaku %20 lub zastąpić znakiem plusa (+).

Do kodowania ciągów znaków możesz użyć metody android.net.Uri parse(). Przykład:

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

Uruchom nawigację zakręt po zakręcie

Użyj tego zamiaru, aby uruchomić nawigację w Mapach Google z szczegółowymi wskazówkami do jednego lub kilku adresów lub współrzędnych. Trasy są zawsze obliczane na podstawie bieżącej lokalizacji użytkownika.

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

Parametry

Aby uruchomić nawigację, użyj place lub qwaypoints (opcjonalnie). Aby opcjonalnie oznaczyć punkt kontrolny jako stację ładowania, przeczytaj artykuł Wysyłanie planu podróży pojazdem elektrycznym do Map Google.

  • q ustawia punkt końcowy dla wyszukiwań nawigacyjnych. Może to być współrzędna szerokości i długości geograficznej lub adres w formacie zapytania. Jeśli jest to ciąg zapytania, który zwraca więcej niż 1 wynik, zostanie wybrany pierwszy wynik.

  • place ustawia punkt końcowy na dom lub pracę. Określ „dom”, aby przejść do domu użytkownika, i „pracy”, aby przejść do miejsca pracy użytkownika.

  • avoid określa cechy, których trasa powinna unikać. avoid jest opcjonalny i może być ustawiony na jedną z tych wartości:

    • t za opłaty drogowe
    • h na autostradach
    • f promem
  • waypoints określa co najmniej 1 miejsce pośrednie na trasie do miejsca docelowego określonego przez q. Możesz określić wiele punktów pośrednich, używając znaku kreski pionowej (|) do rozdzielania miejsc, na przykład Berlin,Germany|Paris,France. Możesz użyć dowolnej liczby punktów pośrednich. Punkty pośrednie zostaną dodane do trasy w tej samej kolejności, w jakiej są wymienione w adresie URL. Każdy punkt kontrolny może być adresem lub współrzędnymi szerokości i długości geograficznej rozdzielonymi przecinkami. W ramach tego samego zamiaru możesz podać adresy i współrzędne szerokości i długości. Ciągi znaków powinny być zakodowane w sposób odpowiedni do adresów URL, dlatego punkty drogi takie jak „Berlin,Niemcy|Paryż,Francja” powinny zostać przekonwertowane na Berlin%2CGermany%7CParis%2CFrance.

Przykłady

Ten zamiar będzie prosił o szczegółową nawigację do Taronga Zoo w Sydney w Australii:

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

Jeśli nie chcesz płacić za przejazd przez bramki lub nie chcesz korzystać z promu, możesz poprosić o wyznaczenie trasy, która będzie unikać takich sytuacji:

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

Jeśli wolisz nawigację do domu, użyj:

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

Aby uruchomić nawigację krok po kroku do 3 adresów w kolejności: Taronga Zoo jako miejsca docelowegoq oraz Google Sydney i Sydney Opera House jako punktów pośrednich:

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

Podobnie jak w przypadku q, możesz reprezentować dowolny punkt pośredni za pomocą szerokości i długości geograficznej rozdzielanych przecinkami zamiast adresu. Aby na przykład uruchomić tę samą nawigację, podając współrzędne geograficzne opery w Sydney zamiast adresu:

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

Wysyłanie planu podróży pojazdem elektrycznym do Map Google

Używaj tej intencji nawigacji z wieloma miejscami docelowymi, aby wskazywać niektóre miejsca docelowe jako przystanki do ładowania pojazdów elektrycznych (EV). Ta intencja, która rozszerza intencję z wieloma punktami, pomaga kierowcom utrzymać wystarczającą ilość energii w akumulatorze pojazdu elektrycznego, aby dotrzeć do celu podróży, poprzez zsynchronizowanie informacji o postojach na ładowanie między aplikacjami do planowania podróży EV a Mapami Google.

W przypadku postojów na ładowanie:

  • Musi zawierać nazwę i współrzędne geograficzne
  • Opcjonalnie może zawierać moc wyjściową, która służy do obliczania czasu ładowania.

Google używa nazwy stacji ładowania i współrzędnych geograficznych, aby znaleźć pasujące miejsce stacji ładowania, a następnie wyświetlić szczegółowe dane, takie jak typy złącza, łączne dane, prędkości i dostępność w czasie rzeczywistym, obsługiwane formy płatności i miejsca szczególnego zainteresowania (POI). Na przykład wskazówki dojazdu do parkingu na zewnątrz na ostatnim etapie nawigacji, godziny otwarcia, oceny. Aby zapewnić dokładne dopasowanie stacji ładowania do danych Google, użyj <brand name>, na przykład ChargePoint.

Parametry

Ostateczny cel podróży

Aby ustawić stację ładowania jako miejsce docelowe:

  • q: musi zawierać współrzędne geograficzne stacji ładowania.
  • q_type: 1 określa, że miejsce docelowe to stacja ładowania.
  • q_name: nazwa miejsca docelowego. Wymagany, jeśli q_type to 1.
  • q_power_output_kw: podwójna liczba określająca moc wyjściową stacji ładowania w kilowatach. Opcjonalnie:

Punkty pośrednie

W przypadku punktów pośrednich wszystkie parametry są równoległe, rozdzielone znakiem | tablice wartości w tej samej kolejności co punkty pośrednie, bez uwzględnienia miejsca docelowego. Niezgodność liczby elementów w równoległych tablicach jest traktowana jako źle sformułowana intencja.

Aby dodać co najmniej 1 punkt pośredni stacji ładowania, użyj tych parametrów, z których wszystkie są opcjonalne. Jeśli jedno z miejsc docelowych jest oznaczone jako stacja ładowania, nazwa punktu orientacyjnego staje się obowiązkowa.

  • waypoints: lista punktów pośrednich zgodnie z intencją szczegółowej nawigacji. W przypadku punktów pośrednich stacji ładowania musi to być wartość lat-long.

  • waypoint_types: typy punktów drogi określone jako liczby. 0 to dowolny przystanek (wartość domyślna), a 1 to stacja ładowania.

  • waypoint_names: nazwy punktów na trasie. To pole jest wymagane w przypadku stacji ładowania.

  • waypoint_power_outputs_kw: podwójne wartości mocy stacji ładowania w kilowatach. W przypadku stacji ładowania możesz opcjonalnie określić punkt orientacyjny z wartością mocy wyjściowej, która jest używana jako wartość zastępcza, jeśli nie można znaleźć pasującej stacji. Pusty slot oznacza, że nie podano żadnej wartości.

Wrażenia użytkownika (UX)

W przypadku intencji podróży z większą liczbą miejsc docelowych wyświetla się ekran podglądu trasy, ale nawigacja nie uruchamia się automatycznie.

W przypadku prawidłowo sformatowanego zamiaru Mapy Google wyświetlą ekran z przebiegiem trasy. Na ekranie podglądu trasy wyświetlane są wszystkie punkty pośrednie i docelowy punkt docelowy z intencji, a w stosownych przypadkach także rekomendacje dotyczące ładowania.

W przypadku punktów pośrednich lub miejsca docelowego oznaczonego jako stacja ładowania Mapy Google będą wyszukiwać pasujące miejsce w bazie danych Google.

Jeśli zostanie znalezione dopasowanie, Mapy Google wyświetlą stację ładowania w interfejsie użytkownika (UI) i zaproponują jej użycie. Jeśli nie uda się znaleźć dopasowania, dane podane w intencji dotyczącej stacji ładowania (szerokość i długość geograficzna, nazwa i moc wyjściowa) zostaną użyte do wyświetlenia tej stacji w interfejsie oraz do przedstawienia rekomendacji dotyczącej ładowania na tej stacji.

Przykłady

Nawigacja do miejsca docelowego z użyciem wielu stacji ładowania

Ten zamiar prowadzi do miejsca docelowego, Port Macquarie NSW, przez 2 stacje ładowania: ChargePoint i Evie.

Miejsca docelowe w kolejności:

  1. Stacja ładowania ChargePoint (lokalizacja: -32.9599188,151.6240806, moc: 6,6 kW)

  2. Stacja ładowania Evie (lokalizacja: -31.9432539,152.4699808, moc wyjściowa: 350 kW)

  3. Port Macquarie, Nowa Południowa Walia

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

Nieznana moc wyjściowa

Jeśli wartość mocy wyjściowej jest nieznana, pozostaw odpowiednie pole waypoint_power_outputs_kw puste. Jeśli wszystkie sloty są puste, nie musisz podawać parametru waypoint_power_outputs_kw.

Miejsca docelowe w kolejności:

  1. Stacja ładowania ChargePoint (lokalizacja: -32.9599188,151.6240806, moc wyjściowa: nieznana)

  2. Port Macquarie, Nowa Południowa Walia

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

Oznaczanie miejsca docelowego jako stacji ładowania

Aby oznaczyć miejsce docelowe jako stację ładowania, podaj parametry q_type, q_nameq_power_output_kw.

Miejsca docelowe w kolejności:

  1. Taronga Zoo, Sydney, Australia

  2. Stacja ładowania ChargePoint (lokalizacja: -32.9599188,151.6240806, moc wyjściowa: nieznana)

  3. Stacja ładowania Evie (lokalizacja: -31.9432539,152.4699808, moc wyjściowa: 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);

Intencje działań

Dostępne są te intencje działań z interfejsami:

Działanie Opis
geo.action:?act=mute Wyciszanie wszystkich wskazówek głosowych nawigacji.
geo.action:?act=unmute Włącza wskazówki głosowe nawigacji.
geo.action:?act=show_traffic Wyświetla na mapie linie natężenia ruchu.
geo.action:?act=hide_traffic Ukrywa linie natężenia ruchu na mapie.
geo.action:?act=show_satellite Wyświetla zdjęcia satelitarne na mapie.
geo.action:?act=hide_satellite Ukrywa zdjęcia satelitarne na mapie.
geo.action:?act=query_next_turn Mapy Google mówią, kiedy trzeba skręcić (działa tylko podczas nawigacji).
geo.action:?act=distance_to_next_turn Mapy Google mówią, jak daleko jest do następnego skrętu (działa tylko podczas nawigacji).
geo.action:?act=time_to_next_turn Mapy Google mówią, kiedy nastąpi następny skręt (działa tylko podczas nawigacji).
geo.action:?act=distance_to_destination Mapy Google mówią, jaka jest odległość do miejsca docelowego (działa to tylko podczas nawigacji).
geo.action:?act=go_back Mapy Google wracają do poprzedniego ekranu w interfejsie.
geo.action:?act=query_current_road Mapy Google mówią, jaką drogą się jedzie.
geo.action:?act=query_destination Mapy Google wypowiadają nazwę miejsca docelowego.
geo.action:?act=apply_electric_vehicle_connector_filter Stosuje filtr typu wtyczki w wynikach wyszukiwania stacji ładowania pojazdów elektrycznych.
geo.action:?act=remove_electric_vehicle_connector_filter Usuwa filtr typu wtyczki w wynikach wyszukiwania stacji ładowania pojazdów elektrycznych.
geo.action:?act=apply_electric_vehicle_payment_filter Stosuje filtr płatności do wyników wyszukiwania stacji ładowania pojazdów elektrycznych.
geo.action:?act=remove_electric_vehicle_payment_filter Usuwa filtr płatności z wyników wyszukiwania stacji ładowania pojazdów elektrycznych.
geo.action:?act=apply_electric_vehicle_fast_charging_filter Stosuje filtr szybkiego ładowania w wynikach wyszukiwania stacji ładowania pojazdów elektrycznych.
geo.action:?act=remove_electric_vehicle_fast_charging_filter Usuwa filtr szybkiego ładowania w wynikach wyszukiwania stacji ładowania pojazdów elektrycznych.
geo.action:?act=avoid_tolls Jeśli użytkownik korzysta z nawigacji, informuje Mapy Google, aby unikały tras z opłatami drogowymi. Może to spowodować zmianę trasy, jeśli obecna trasa obejmuje odcinki płatne.
geo.action:?act=allow_tolls Jeśli użytkownik korzysta z nawigacji, informuje Mapy Google, aby zezwoliły na trasy z opłatami drogowymi. Może to spowodować zmianę trasy, jeśli zezwolenie na opłaty drogowe spowoduje, że będzie dostępna lepsza trasa.
geo.action:?act=avoid_ferries Jeśli użytkownik korzysta z nawigacji, informuje Mapy Google, aby omijały trasy z promami. Może to spowodować zmianę trasy, jeśli obecna aktywna trasa zawiera promy.
geo.action:?act=allow_ferries Jeśli użytkownik korzysta z nawigacji, informuje Mapy Google, aby zezwalały na trasy z promami. Może to spowodować zmianę trasy, jeśli uwzględnienie promów skutkuje znalezieniem lepszej trasy.
geo.action:?act=avoid_highways Jeśli użytkownik korzysta z nawigacji, informuje Mapy Google, aby unikały tras z użyciem autostrad. Może to spowodować zmianę trasy, jeśli bieżąca aktywna trasa zawiera autostrady.
geo.action:?act=allow_highways Jeśli użytkownik korzysta z nawigacji, informuje Mapy Google, aby zezwalały na trasy z autostradami. Może to spowodować zmianę trasy, jeśli zezwolenie na korzystanie z autostrad spowoduje, że dostępna będzie lepsza trasa.
geo.action:?act=eta Jeśli użytkownik korzysta z nawigacji, Mapy Google mówią szacowany czas dotarcia do miejsca docelowego (np. 9:15).
geo.action:?act=time_to_destination Jeśli użytkownik korzysta z nawigacji, Mapy Google mówią, ile czasu zajmie dotarcie do celu (np. 15 minut).
geo.action:?act=exit_navigation Zakończ nawigację.
geo.action:?act=select_search_result&id=0 Jeśli na ekranie wyświetlane są obecnie wyniki wyszukiwania (patrz poniżej), rozpoczyna nawigację do n poziomu na podstawie podanego parametru identyfikatora. Zwróć uwagę, że indeks jest oparty na 0 (czyli powyższa intencja wybierze pierwszy wynik na liście).

Wyniki wyszukiwania wyświetlane na ekranie