כוונות של מפות Google ל-Android Automotive

כתב ויתור

המוצר או התכונה האלה ישתנו, והם לא כפופים למדיניות הוצאה משימוש או להסכם רמת שירות (SLA). ההטמעה עשויה להשתנות בגרסאות עתידיות.

בנוגע לתוכנות לדוגמה, לקובצי נתונים ו/או לקוד מקור שמצורפים למסמך הזה: המוצר הזה מסופק "כפי שהוא" וללא אחריות מכל סוג שהוא, ו-Google מוותרת במפורש על כל אחריות, בין אם היא מפורשת, משתמעת, סטטוטורית או אחרת, כולל, בין היתר, אחריות לסחירות, התאמה למטרה מסוימת ואי הפרה של זכויות כלשהן שקשורות למוצר הזה.


באמצעות כוונות (intents) של Android Automotive, אפשר להפעיל ניווט במפות Google.

מידע נוסף זמין במאמר כוונות (intents) של מפות Google ל-Android.

מידע נוסף על הוספת האפליקציה לכלי רכב עם Android Auto או Android Automotive OS זמין במאמר Android לכלי רכב.

סקירה כללית

בדף הזה מתוארים הכוונות שבהן אפשר להשתמש במפות Google ל-Android Automotive. מסמכי תיעוד מפורטים למפתחים של Android זמינים במאמרים הבאים:

בקשות לכוונה

כדי להפעיל את מפות Google ל-Android Automotive באמצעות כוונה, צריך קודם ליצור אובייקט Intent, לציין את הפעולה, את מזהה ה-URI ואת החבילה שלו.

  • פעולה כל הכוונות במפות Google נקראות כפעולת צפייה, ACTION_VIEW.

  • URI כוונת הפעולה במפות Google מבוססת על מחרוזות מקודדות של URI שמציינות את הפעולה הרצויה, יחד עם נתונים מסוימים לביצוע הפעולה.

  • חבילת קוד הקריאה ל-setPackage("com.google.android.apps.maps") מבטיחה שאפליקציית מפות Google ל-Android תעבד את ה-Intent. אם החבילה לא מוגדרת, המערכת קובעת אילו אפליקציות יכולות לטפל ב-Intent. אם יש כמה אפליקציות זמינות, יכול להיות שתתבקשו לבחור באפליקציה שבה תרצו להשתמש.

אחרי שיוצרים את הכוונה, אפשר לבקש מהמערכת להפעיל את האפליקציה הרלוונטית בכמה דרכים. שיטה נפוצה היא להעביר את ה-Intent ל-method‏ startActivity(). המערכת תפעיל את האפליקציה הנדרשת, במקרה הזה מפות Google, ותתחיל את הפעילות המתאימה.

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

אם המערכת לא תזהה אפליקציה שיכולה להגיב ל-Intent, יכול להיות שהאפליקציה תקרוס. לכן, לפני שמציגים למשתמש אחד מהכוונות האלה, צריך לוודא קודם שהאפליקציה המקבלת מותקנת.

כדי לוודא שאפליקציה זמינה לקבל את הכוונה, צריך להפעיל את השיטה resolveActivity() באובייקט Intent. אם התוצאה היא לא null, יש לפחות אפליקציה אחת שיכולה לטפל ב-Intent, ואפשר לבצע בבטחה קריאה ל-startActivity(). אם התוצאה היא null, לא כדאי להשתמש ב-intent, ואם אפשר, להשבית את התכונה שמפעילה את ה-intent.

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

לדוגמה, כדי להפעיל ניווט מפורט אל גן החיות Taronga בסידני, אפשר להשתמש בקוד הבא:

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

כל המחרוזות המועברות ל-Intents של מפות Google חייבות להיות מקודדות לפי URI. לדוגמה, המחרוזת '1st & Pike, Seattle' צריכה להפוך ל-1st%20%26%20Pike%2C%20Seattle. אפשר לקודד רווחים במחרוזת באמצעות %20 או להחליף אותם בסימן הפלוס (+).

אפשר להשתמש בשיטה android.net.Uri parse() כדי לקודד את המחרוזות. לדוגמה:

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

הפעלת מסלול מפורט

אפשר להשתמש בכוונה הזו כדי להפעיל את הניווט במפות Google עם מסלול מפורט לכתובת אחת או לכמה כתובות או קואורדינטות שצוינו. המסלול תמיד מתחיל מהמיקום הנוכחי של המשתמש.

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

פרמטרים

כדי להפעיל את הניווט, מקישים על place או על q עם waypoints (אופציונלי). כדי לסמן נקודת ציון כתחנת טעינה, אפשר לעיין במאמר שליחת תוכנית נסיעה לרכב חשמלי למפות Google.

  • q מגדיר את נקודת הקצה לחיפושים של ניווט. זה יכול להיות קו הרוחב/האורך או כתובת בפורמט של שאילתה. אם מדובר במחרוזת שאילתה שמחזירה יותר מתוצאה אחת, תיבחר התוצאה הראשונה.

  • place מגדיר את נקודת הקצה לבית או לעבודה. מציינים את הכתובת בבית כדי לנווט לבית של המשתמש, ואת הכתובת בעבודה כדי לנווט למקום העבודה של המשתמש.

  • avoid מגדיר תכונות שהמערכת תנסה להימנע מהן במסלול. השדה avoid הוא אופציונלי, וניתן להגדיר בו את אחד או יותר מהערכים הבאים:

    • t לכבישי אגרה
    • h לכבישים מהירים
    • f למעבורות
  • waypoints מציין מקום ביניים אחד או יותר כדי לתכנן מסלול ליעד הסופי שצוין ב-q. כדי לציין כמה נקודות דרך, אפשר להשתמש בקו אנכי (|) כדי להפריד בין המקומות – לדוגמה, Berlin,Germany|Paris,France. אפשר להשתמש בכמה נקודות דרך שרוצים. נקודות העצירה יתווספו לנתיב באותו הסדר שבו הן מפורטות בכתובת ה-URL. כל נקודת ציון יכולה להיות כתובת או קואורדינטות של קווי אורך ורוחב מופרדות בפסיקים. אפשר גם לכלול כתובות וקואורדינטות של קווי אורך ורוחב באותו כוונה. צריך להשתמש בבריחה מסימן ה-URL במחרוזות, כך שצריך להמיר נקודות דרך כמו 'Berlin,Germany|Paris,France' ל-Berlin%2CGermany%7CParis%2CFrance.

דוגמאות

הכוונה הזו תגרום לבקשת מסלול מפורט לגן החיות טארונגה בסידני, אוסטרליה:

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

אם אתם מעדיפים לא לשלם אגרות או לנסוע במעבורת, תוכלו לבקש מסלול שינסה להימנע מהמצבים האלה:

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

לחלופין, אם אתם מעדיפים לנווט לבית, תוכלו להשתמש באפשרות הבאה:

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

כדי להפעיל ניווט מפורט לשלושת הכתובות הבאות לפי הסדר, מזינים את גן החיות טארונגה כיעד הסופי q ואת Google סידני ובית האופרה של סידני כנקודות העצירה:

  1. Google Sydney

  2. בית האופרה של סידני

  3. גן החיות Taronga, סידני, אוסטרליה

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, אפשר לייצג כל אחד מנקודות הדרך באמצעות קו אורך וקו רוחב מופרדים בפסיקים במקום כתובת. לדוגמה, כדי להפעיל את אותו ניווט תוך העברת קו הרוחב ואורך הגלובוס של בית האופרה של סידני במקום הכתובת:

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

אפשר להשתמש בכוונה הזו לניווט למספר יעדים כדי לציין יעדים מסוימים בתור תחנות טעינה לרכב חשמלי (EV). הכוונה הזו, שמרחיבה את הכוונה עם מספר נקודות עצירה, עוזרת לנהגים לשמור על טעינה מספקת של הסוללה ברכב החשמלי כדי להגיע ליעדים שלהם. לשם כך, היא מסנכרנת את המידע על תחנות הטעינה בין אפליקציות לתכנון נסיעות ברכב חשמלי לבין מפות Google.

בעצירות לטעינה, כוונות הנסיעה:

  • חייב להכיל שם וקואורדינטות
  • יכול להכיל גם את פלט החשמל, לצורך חישוב זמן הטעינה

Google משתמשת בשם ובקו הרוחב והאורך של תחנת הטעינה כדי למצוא מקום תואם של תחנת טעינה, ולהציג נתונים עשירים כמו סוגי המחברים, נתונים כלליים, מהירויות וזמינות בזמן אמת, אמצעי תשלום נתמכים ונקודות עניין (POI) שמארחות את תחנת הטעינה. לדוגמה, מסלול הגעה למגרשי חניה בחוץ בחלק האחרון של הניווט, שעות פתיחה, דירוגים. כדי לוודא שתחנות הטעינה יהיו תואמות לנתונים של Google, צריך להשתמש ב-<brand name>, לדוגמה ChargePoint.

פרמטרים

היעד הסופי

כדי להגדיר תחנת טעינה כיעד הסופי, משתמשים ב-:

  • q: חייב להכיל את הערך של קו הרוחב ואורך הגלובוס של תחנת הטעינה.
  • q_type: 1 מציין שהיעד הסופי הוא תחנת טעינה.
  • q_name: השם של היעד הסופי. חובה אם הערך של q_type הוא 1.
  • q_power_output_kw: מספר כפול של פלט החשמל של תחנת הטעינה בקילוואט. אופציונלי.

נקודות ציון

בנקודות ציון, כל הפרמטרים הם מערכי ערכים מקבילים שמופרדים ב-|, באותו הסדר של נקודות הציון, לא כולל היעד הסופי. אי-התאמה במספר הרכיבים במערכים מקבילים נחשבת ככוונה בפורמט שגוי.

כדי להוסיף נקודת ציון אחת או יותר של תחנות טעינה, משתמשים בפרמטרים הבאים, שכולם אופציונליים. אם אחד מהיעדים מסומן בתור תחנת טעינה, שם נקודת הציון הופך להיות חובה ליעד הזה.

  • waypoints: רשימת נקודות דרך כפי שמתוארת בכוונה לניווט לפי מסלול מפורט. הערך חייב להיות קו אורך קו רוחב לנקודות ציון בתחנות טעינה.

  • waypoint_types: הסוגים לכל נקודת ציון מצוינים כמספר. 0 הוא כל עצירה (ערך ברירת המחדל) ו-1 הוא תחנת הטעינה.

  • waypoint_names: שמות של נקודות דרך. השדה הזה הוא חובה לתחנות טעינה.

  • waypoint_power_outputs_kw: מספרים כפולים של הספק של תחנת הטעינה בקילוואט. בתחנות טעינה, אפשר לציין ערך של פלט הספק של נקודת ציון, שישמש כחלופה אם לא נמצאת תחנה תואמת. אם משבצת ריקה, סימן שלא צוין ערך.

התנהגות של חוויית משתמש (UX)

כשמגדירים כוונות נסיעה עם כמה יעדים, מוצג המסך של סקירה כללית של המסלול, אבל הניווט לא מתחיל באופן אוטומטי.

אם הפורמט של הכוונה נכון, במפות Google יוצג מסך של סקירה כללית של המסלול לנסיעה. במסך הסקירה הכללית של המסלול יוצגו כל נקודות העצירה והיעד הסופי מהכוונה, עם המלצות לטעינה במקרים הרלוונטיים.

אם תוסיפו נקודות דרך או יעד סופי שסומנו בתור תחנת טעינה, מפות Google יחפשו מקום תואם במסד הנתונים של Google.

אם נמצאה התאמה, מפות Google משתמשות בנתונים של Google כדי להציג את תחנת הטעינה בממשק המשתמש (UI) ולספק המלצה לטעינה בתחנה. אם לא נמצאה התאמה, המערכת תשתמש בנתונים שסופקו בכוונה לטעינה (קו הרוחב, קו האורך, השם והספק) כדי להציג את תחנת הטעינה הזו בממשק המשתמש ולספק המלצה לטעינה בתחנת הטעינה הזו.

דוגמאות

ניווט ליעד סופי דרך כמה תחנות טעינה

הכוונה הבאה מובילה ליעד הסופי, Port Macquarie NSW, דרך שתי תחנות טעינה, ChargePoint ו-Evie.

היעדים לפי הסדר:

  1. תחנת טעינה של ChargePoint (מיקום: -32.9599188,151.6240806, תפוקת חשמל: 6.6kw)

  2. תחנת טעינה של Evie (מיקום: -31.9432539,152.4699808, תפוקת חשמל: 350kw)

  3. פורט מקווירי, ניו סאות' ויילס

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

הספק יציאה לא ידוע

אם ערך פלט החשמל לא ידוע, משאירים את החריץ הרלוונטי של waypoint_power_outputs_kw ריק. לחלופין, אם כל התקנים ריקים, אין צורך לציין את הפרמטר waypoint_power_outputs_kw.

היעדים לפי הסדר:

  1. תחנת טעינה של ChargePoint (מיקום: -32.9599188,151.6240806, תפוקת חשמל: לא ידועה)

  2. פורט מקווירי, ניו סאות' ויילס

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

סימון היעד הסופי בתור תחנת טעינה

כדי לסמן את היעד הסופי בתור תחנת טעינה, מציינים את הפרמטרים q_type, ‏ q_name ו-q_power_output_kw.

היעדים לפי הסדר:

  1. גן החיות Taronga, סידני, אוסטרליה

  2. תחנת טעינה של ChargePoint (מיקום: -32.9599188,151.6240806, תפוקת חשמל: לא ידועה)

  3. תחנת טעינה של Evie (מיקום: -31.9432539,152.4699808, הספק: 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);

כוונות פעולה

אלה כוונות הפעולה עם ממשקים שזמינות:

פעולה תיאור
geo.action:?act=mute השתקת כל ההנחיות הקוליות של הניווט.
geo.action:?act=unmute ביטול ההשתקה של ההנחיות הקוליות לניווט.
geo.action:?act=show_traffic הצגת קווים של תנועה במפה.
geo.action:?act=hide_traffic הסתרת קווי התנועה במפה.
geo.action:?act=show_satellite הצגת תמונות לוויין במפה.
geo.action:?act=hide_satellite הסתרת תמונות הלוויין במפה.
geo.action:?act=query_next_turn מפות Google מקריאות את הפנייה הבאה (התכונה פועלת רק בזמן הניווט).
geo.action:?act=distance_to_next_turn מפות Google מקריאה את המרחק לפני הפנייה הבאה (התכונה פועלת רק במהלך הניווט).
geo.action:?act=time_to_next_turn מפות Google מקריאה את הזמן עד לפנייה הבאה (התכונה פועלת רק במהלך ניווט).
geo.action:?act=distance_to_destination מפות Google מקריאה את המרחק ליעד (התכונה פועלת רק במהלך הניווט).
geo.action:?act=go_back מפות Google חוזרות למסך הקודם בממשק המשתמש.
geo.action:?act=query_current_road מפות Google מקריאה את הכביש הנוכחי.
geo.action:?act=query_destination מערכת מפות Google תקריא את היעד.
geo.action:?act=apply_electric_vehicle_connector_filter החלת מסנן של סוג המחבר על תוצאות החיפוש של תחנות טעינה לרכב חשמלי.
geo.action:?act=remove_electric_vehicle_connector_filter הסרת המסנן של סוג המחבר בתוצאות החיפוש של תחנות טעינה לרכב חשמלי.
geo.action:?act=apply_electric_vehicle_payment_filter החלת מסנן תשלומים על תוצאות החיפוש של תחנות טעינה לרכב חשמלי.
geo.action:?act=remove_electric_vehicle_payment_filter הסרת מסנן התשלום בתוצאות החיפוש של תחנות טעינה לרכב חשמלי.
geo.action:?act=apply_electric_vehicle_fast_charging_filter החלת מסנן של טעינה מהירה על תוצאות החיפוש של תחנות טעינה לרכב חשמלי.
geo.action:?act=remove_electric_vehicle_fast_charging_filter הסרת המסנן 'טעינה מהירה' מתוצאות החיפוש של תחנות טעינה לרכב חשמלי.
geo.action:?act=avoid_tolls אם המשתמש מבצע ניווט, הוא מורה למפות Google להימנע ממסלולים עם אגרה. כתוצאה מכך, יכול להיות שיתבצע שינוי מסלול אם המסלול הנוכחי כרוך בתשלום.
geo.action:?act=allow_tolls אם המשתמש מבצע ניווט, המערכת מבקשת ממפות Google לאפשר מסלולים עם כבישי אגרה. אם האפשרות הזו תהיה זמינה, המערכת עשויה לשנות את המסלול.
geo.action:?act=avoid_ferries אם המשתמש מבצע ניווט, המערכת מבקשת ממפות Google להימנע ממסלולים עם מעבורות. הפעולה הזו עשויה לגרום לשינוי מסלול אם המסלול הפעיל הנוכחי כולל מעבורות.
geo.action:?act=allow_ferries אם המשתמש מבצע ניווט, המערכת מבקשת ממפות Google לאפשר מסלולים עם מעבורות. אם האפשרות הזו תגרום ליצירת מסלול טוב יותר, המסלול עשוי להשתנות.
geo.action:?act=avoid_highways אם המשתמש מבצע ניווט, הוא מורה למפות Google להימנע ממסלולים עם כבישי מהירים. הפעולה הזו עשויה לגרום לשינוי מסלול אם במסלול הפעיל הנוכחי יש כבישים מהירים.
geo.action:?act=allow_highways אם המשתמש מבצע ניווט, המערכת מבקשת ממפות Google לאפשר מסלולים עם כבישים מהירים. אם האפשרות הזו תהיה מופעלת, יכול להיות שהמסלול ישתנה אם יתגלה מסלול טוב יותר שכולל כבישים מהירים.
geo.action:?act=eta אם המשתמש מנווט, מפות Google מקריאות את זמן ההגעה המשוער ליעד (לדוגמה, 9:15).
geo.action:?act=time_to_destination אם המשתמש מנווט, מפות Google מקריאות את זמן ההגעה המשוער ליעד (לדוגמה, 15 דקות).
geo.action:?act=exit_navigation יציאה מהניווט.
geo.action:?act=select_search_result&id=0 אם תוצאות החיפוש מוצגות כרגע במסך (ראו בהמשך), המערכת מתחילה לנווט לתוצאה ה-n על סמך פרמטר המזהה שסופק. חשוב לזכור שהאינדקס מבוסס על 0 (כלומר, הכוונה שלמעלה תבחר בתוצאה הראשונה ברשימה).

תוצאות החיפוש שמוצגות במסך