העדפות התנועה שאתם בוחרים מאזנות בין הדיוק של פרטי המסלול לבין ביצועי הבקשה באחת משתי דרכים:
- מודע לתנועה: מחזיר את התוצאות המדויקות ביותר שאפשר (חביון גבוה יותר).
- לא מודע לתנועה: החזרת התוצאות במהירות האפשרית (החביון הנמוך ביותר).
כשאתם שולחים בקשה, כדאי לשקול אם עדיף להחזיר את התוצאות הכי מדויקות שאפשר או להחזיר תוצאות כמה שיותר מהר. ספריית המסלולים מספקת אפשרויות שמאפשרות לכם לשלוט באיכות נתוני התגובה לעומת זמן האחזור של התגובה.
הגדרת רמת התנועה ומודל התנועה
כדי לציין את רמת התנועה, מגדירים את הערך של routingPreference ב-ComputeRoutesRequest. ברשימה הבאה מוצגות האפשרויות הזמינות של
routingPreference:
-
TRAFFIC_UNAWARE(ברירת מחדל): מחזיר תוצאות הכי מהר, עם פרטים משוערים של המסלול. -
TRAFFIC_AWARE: מחזירה תוצאות מדויקות יותר באמצעות נתוני תנועה בזמן אמת, אבל עם זמן אחזור ארוך יותר. -
TRAFFIC_AWARE_OPTIMAL: מחזירה את התוצאות הכי מדויקות שאפשר בעזרת נתוני תנועה בזמן אמת, אבל עם זמן האחזור הכי גבוה.
המאפיין TRAFFIC_MODEL
מייצג הנחות שמשמשות לחיזוי משך הזמן בתנועה (
TrafficModel.BEST_GUESS (ברירת מחדל),
TrafficModel.OPTIMISTIC,
TrafficModel.PESSIMISTIC).
איך בוחרים ניתוב שמודע לתנועה
כדי ליצור בקשה למסלול עם נתוני תנועה:
-
מגדירים את המאפיין
travelModeלערךDRIVING. -
מגדירים את המאפיין
routingPreferenceלאחד מהערכים הבאים:TRAFFIC_AWARETRAFFIC_AWARE_OPTIMAL
הערה:
TRAFFIC_UNAWAREהיא הגדרת ברירת המחדל. -
מגדירים את המאפיין
trafficModelלאחד מהערכים הבאים: -
מגדירים את המאפיין
extraComputationsלערךTRAFFIC_ON_POLYLINE. -
מבקשים את השדות
path,speedPathsו-routeLabels.
בדוגמה הבאה לבקשה מוצג איך לבקש מסלול עם נתוני תנועה שכולל נתוני תנועה בקו הפוליגוני:
// Define a traffic aware routes request with polylines. const requestWithTraffic = { origin: '200 King St San Francisco, CA 94107', destination: 'Pier 41, San Francisco, CA 94133', travelMode: 'DRIVING', routingPreference: 'TRAFFIC_AWARE_OPTIMAL', trafficModel: 'optimistic', extraComputations: ['TRAFFIC_ON_POLYLINE'], fields: ['speedPaths'], };
מצב התנועה
מצב התנועה מאפיין את קצב זרימת התנועה:
- תנועה רגילה: אין עומס והתנועה זורמת במהירות רגילה.
- עומס תנועה קל עד בינוני: עומס התנועה גדל, והתנועה זורמת במהירות מופחתת.
- עומס תנועה כבד: עומס כבד מאוד, עם מהירות נסיעה נמוכה מאוד.
לא מודע לתנועה
הגדרת ברירת המחדל היא TRAFFIC_UNAWARE. כדאי להשתמש בהעדפת הניתוב הזו כשרוצים לקבל תשובות במהירות האפשרית, ופרטי ניתוב משוערים מספיקים.
מסלולי TRAFFIC_UNAWARE מחושבים בלי להתחשב בתנאי התנועה הנוכחיים. העדפת הניתוב הזו מניבה את התגובה המהירה ביותר לבקשה (זמן האחזור הנמוך ביותר).
אם בוחרים באפשרות TRAFFIC_UNAWARE, המסלול ומשך הנסיעה מבוססים על רשת הכבישים ועל תנאי התנועה הממוצעים שלא תלויים בזמן, ולא על תנאי הכבישים הנוכחיים.
לכן, יכול להיות שהמסלולים יכללו כבישים שסגורים באופן זמני. התוצאות של בקשה מסוימת עשויות להשתנות לאורך זמן בגלל שינויים ברשת הכבישים, עדכונים של תנאי התנועה הממוצעים והאופי המבוזר של השירות. התוצאות עשויות להשתנות גם בין מסלולים כמעט זהים בכל זמן או תדירות.
אלה התשובות שיוצגו לכם:
-
duration: מכיל את זמן ההגעה המשוער למסלול. -
staticDuration: זמן ההגעה המשוער למסלול, בהתבסס רק על נתוני תנועה היסטוריים. בשבילTRAFFIC_UNAWARE, הערך כאן זהה לערך שלduration.
מודעות למצב התנועה
משתמשים בהעדפת הניתוב הזו כשרוצים פרטים מדויקים יותר על הניתוב מאשר
TRAFFIC_UNAWARE, אבל לא אכפת לכם אם התשובות יוחזרו עם עלייה מתונה בחביון.
כשמגדירים את העדפת הניתוב TRAFFIC_AWARE, השירות מחשב את המסלול בהתאם לתנאי התנועה הנוכחיים. כתוצאה מכך, המסלול והפרטים שלו משקפים בצורה מדויקת יותר את המצב האמיתי של הדרך. השיפור באיכות הנתונים מגיע עם עלייה בחביון התגובה, ולכן אנחנו מבצעים אופטימיזציות לביצועים כדי לצמצם את החביון.
אלה התשובות שיוצגו לכם:
-
duration: זמן ההגעה המשוער בהתחשב במידע על התנועה בזמן אמת. -
staticDuration: זמן ההגעה המשוער למסלול, בהתבסס רק על נתוני תנועה היסטוריים.
אופטימלי עם התחשבות במצב התנועה
משתמשים בהעדפת הניתוב הזו כשרוצים לקבל תוצאות באיכות הכי גבוהה, בלי להתחשב במשך הזמן שלוקח לקבל את התשובות. העדפת הניתוב הזו גורמת לעיכוב הכי ארוך בהחזרת תשובות (החביון הכי גבוה).
כשמגדירים את העדפת הניתוב TRAFFIC_AWARE_OPTIMAL, השירות מחשב את המסלול בהתחשב בתנאי התנועה הנוכחיים, אבל לא מבצע אופטימיזציות של הביצועים. במצב הזה, השרת מבצע חיפוש מקיף יותר ברשת הכבישים כדי למצוא את המסלול האופטימלי.
העדפת המסלול TRAFFIC_AWARE_OPTIMAL שווה למצב שבו נעשה שימוש בכתובת maps.google.com ובאפליקציית מפות Google לנייד.
כשמשתמשים באפשרות הזו עם computeRouteMatrix, מספר האלמנטים בבקשה (מספר המקורות × מספר היעדים) לא יכול להיות גדול מ-25.
אלה התשובות שיוצגו לכם:
-
duration: זמן ההגעה המשוער למסלול, בהתחשב במידע על התנועה בזמן אמת. -
staticDuration: זמן ההגעה המשוער למסלול, בהתבסס רק על נתוני תנועה היסטוריים.
הגדרת שעת יציאה (אופציונלי)
משתמשים במאפיין הזה רק לבקשות שמתחשבות בתנועה, שבהן שעת היציאה צריכה להיות בעתיד. אם לא מגדירים את המאפיין departureTime, ברירת המחדל היא השעה שבה נשלחת הבקשה.
משתמשים במאפיין departureTime יחד עם האפשרויות TRAFFIC_AWARE ו-TRAFFIC_AWARE_OPTIMAL כשרוצים לשנות את האופן שבו השירות חוזה את התנועה כשבוחרים מסלול.
-
TRAFFIC_UNAWARE: לא מומלץ כי הבחירה של המסלול ומשך הנסיעה מבוססים על רשת הכבישים ועל תנאי התנועה הממוצעים שלא תלויים בזמן. -
TRAFFIC_AWAREו-TRAFFIC_AWARE_OPTIMAL: מומלץ להשתמש בהן כשמדובר ביציאות שיתרחשו בעתיד הקרוב כי ההעדפות האלה מתבססות על תנאי התנועה בזמן אמת. התנועה בזמן אמת חשובה ורלוונטית יותר ככל שהתאריךdepartureTimeקרוב יותר להיום. ככל שתגדירו את שעת היציאה מוקדם יותר, כך המערכת תתחשב יותר בתנאי התנועה ההיסטוריים בבחירת המסלולים.
קבלת טוקן מסלול
אסימוני מסלול הם ייצוג של מסלול בקידוד Base64 שמתאים לשימוש באינטרנט. משתמשים בטוקן של מסלול כדי לשתף מסלול עם Navigation SDK. ה-SDK משתמש באסימון הזה כדי לשחזר את המסלול ולשמור על כוונת הניווט המקורית, גם במהלך ניתוב מחדש.
כדי לקבל טוקן מסלול:
- מגדירים את travelMode לערך
DRIVING. - מגדירים את
routingPreferenceלערךTRAFFIC_AWAREאוTRAFFIC_AWARE_OPTIMAL. - מבקשים את השדה
routeToken.
בדוגמה הבאה אפשר לראות איך לבקש אסימון מסלול:
// Define a traffic aware routes request with a route token. const requestWithRouteToken = { origin: '200 King St San Francisco, CA 94107', destination: 'Pier 41, San Francisco, CA 94133', travelMode: 'DRIVING', routingPreference: 'TRAFFIC_AWARE', fields: ['path', 'speedPaths', 'routeLabels', 'routeToken'], };