כתב ויתור
המוצר או התכונה האלה ישתנו, והם לא כפופים למדיניות הוצאה משימוש או להסכם רמת שירות (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 סידני ובית האופרה של סידני כנקודות העצירה:
Google Sydney
בית האופרה של סידני
גן החיות 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.
היעדים לפי הסדר:
תחנת טעינה של ChargePoint (מיקום: -32.9599188,151.6240806, תפוקת חשמל: 6.6kw)
תחנת טעינה של Evie (מיקום: -31.9432539,152.4699808, תפוקת חשמל: 350kw)
פורט מקווירי, ניו סאות' ויילס
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
.
היעדים לפי הסדר:
תחנת טעינה של ChargePoint (מיקום: -32.9599188,151.6240806, תפוקת חשמל: לא ידועה)
פורט מקווירי, ניו סאות' ויילס
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
.
היעדים לפי הסדר:
גן החיות Taronga, סידני, אוסטרליה
תחנת טעינה של ChargePoint (מיקום: -32.9599188,151.6240806, תפוקת חשמל: לא ידועה)
תחנת טעינה של 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 (כלומר, הכוונה שלמעלה תבחר בתוצאה הראשונה ברשימה).
|