העדפות התנועה שבוחרים יוצרות איזון בין הדיוק של פרטי המסלול לבין ביצועי הבקשה. כששולחים בקשה, צריך לשקול אם כדאי להחזיר את התוצאות המדויקות ביותר האפשריות או להחזיר תוצאות מהר ככל האפשר. ב-Routes API יש אפשרויות שמאפשרות לכם לקבוע את איכות נתוני התגובה לעומת זמן האחזור של התגובה.
הגדרת רמת נתוני התנועה
ב-Routes API יש את האפשרויות RoutingPreference (ל-REST) ו-RoutingPreference (ל-gRPC) שמאפשרות לציין העדפות ניתוב לחישוב מסלולים. ההעדפות האלה שונות בהיקף שבו הן מביאות בחשבון את תנאי התנועה בחישוב המסלול. לכל העדפה של ניתוב יש תוצאות שונות במידה מסוימת לגבי איכות המסלול, זמן ההגעה המשוער וזמן האחזור של התגובה.
מצב התנועה מאופיין בקצב התנועה. לדוגמה:
- כשאין עומס תנועה, תנאי התנועה נחשבים לרגילים והתנועה זורמת במהירות הרגילה ללא הפרעה.
- לקראת שעת העומס, צפיפות התנועה עולה, מה שגורם להאטה בתנועה ויוצר תנאי תנועה קלים עד בינוניים.
- בפקקים, קצב התנועה נעצר, וכתוצאה מכך יש עומס כבד.
תנועה לא מודעת
כשמגדירים את העדפת הניתוב TRAFFIC_UNAWARE
, המסלולים מחושבים בלי להביא בחשבון את תנאי התנועה הנוכחיים. העדפת הניתוב הזו מספקת את זמן האחזור הנמוך ביותר לתגובה (התשובות מוחזרות במהירות הרבה ביותר).
TRAFFIC_UNAWARE
היא הגדרת ברירת המחדל.
בתגובה:
זמן האספקה המשוער מופיע במאפיין התשובה
duration
.מאפייני התגובה
duration
ו-staticDuration
מכילים את אותו ערך.
כדאי להשתמש בהעדפת הניתוב הזו כשרוצים לקבל את התשובות הכי מהר, ופרטי הניתוב המשוערים מספיק טובים.
התראות על מצב התנועה
כשמגדירים את העדפת המסלול TRAFFIC_AWARE
, המסלולים מחושבים תוך התחשבות בתנאי התנועה הנוכחיים. כתוצאה מכך, המסלול ופרטי המסלול משקפים בצורה מדויקת יותר את התנאים בעולם האמיתי. העלייה באיכות הנתונים הזו מתבצעת על חשבון זמן האחזור של התגובה, ולכן אנחנו מבצעים אופטימיזציה של הביצועים כדי לצמצם את זמן האחזור.
בתגובה:
זמן האספקה המשוער שמביא בחשבון את התנועה בזמן אמת נכלל במאפיין התגובה
duration
.מאפיין התגובה
staticDuration
מכיל את משך הנסיעה במסלול, בלי להביא בחשבון את תנאי התנועה.
כדאי להשתמש בהעדפת הניתוב הזו אם רוצים לקבל פרטי ניתוב מדויקים יותר מ-TRAFFIC_UNAWARE
, אבל לא משנה אם זמן האחזור של התשובות יגדל במידה מתונה.
אופטימלי עם התחשבות בתנועה
כשמגדירים את האפשרות TRAFFIC_AWARE_OPTIMAL
לבחירת מסלול, המערכת מחשבת את המסלולים תוך התחשבות בתנאי התנועה הנוכחיים, אבל לא מחילה אופטימיזציות של ביצועים. במצב הזה, השרת מבצע חיפוש מקיף יותר של רשת הכבישים כדי למצוא את המסלול האופטימלי.
העדפת המסלול TRAFFIC_AWARE_OPTIMAL
זהה למצב שבו נעשה שימוש ב-maps.google.com ובאפליקציה לנייד של מפות Google.
כשמשתמשים באפשרות הזו עם Compute Route Matrix, מספר הרכיבים בבקשה (מספר מקורות x מספר יעדים) לא יכול לחרוג מ-100. מידע נוסף על המגבלות של Compute Route Matrix זמין במאמר חישוב מטריצה של מסלולים.
בתגובה:
זמן האספקה המשוער שמביא בחשבון את התנועה בזמן אמת נכלל במאפיין התגובה
duration
.מאפיין התגובה
staticDuration
מכיל את משך הנסיעה במסלול, בלי להביא בחשבון את תנאי התנועה.
העדפת הניתוב הזו מספקת את זמן האחזור הארוך ביותר לתשובה (כלומר, התשובות מחזירות את העיכוב הארוך ביותר). כדאי להשתמש בהעדפת הניתוב הזו כשרוצים לקבל תוצאות באיכות הגבוהה ביותר, בלי קשר למשך הזמן שלוקח לקבל את התשובות.
ההשפעה של הגדרת שעת יציאה
אפשר להשתמש בנכס departureTime
כדי להגדיר את שעת היציאה של הנסיעה. אם לא מגדירים את המאפיין departureTime
, הערך שמוגדר כברירת מחדל הוא השעה שבה הבקשה נשלחת.
ב-
TRAFFIC_UNAWARE
אי אפשר להגדיר אתdepartureTime
כי בחירת המסלול והמשך הנסיעה מבוססים על רשת הכבישים ועל תנאי התנועה הממוצעים שאינם תלויים בזמן.במדדים
TRAFFIC_AWARE
ו-TRAFFIC_AWARE_OPTIMAL
, שמביאים בחשבון את תנאי התנועה בזמן אמת, התנועה בזמן אמת נעשית חשובה יותר ככל ש-departureTime
קרוב יותר לזמן הנוכחי. ככל שמגדירים את שעת היציאה לטווח ארוך יותר, כך ניתנת יותר תשומת לב לתנאי התנועה ההיסטוריים.
דוגמה להגדרת העדפת ניתוב
קוד ה-JSON הבא מדגים איך מגדירים את העדפת הניתוב בגוף הישות של הודעת הבקשה.
{ "origin":{ "location":{ "latLng":{ "latitude":37.419734, "longitude":-122.0827784 } } }, "destination":{ "location":{ "latLng":{ "latitude":37.417670, "longitude":-122.079595 } } }, "travelMode":"DRIVE", "routingPreference":"TRAFFIC_AWARE_OPTIMAL" }
הגדרת תנועה בקוים פוליגונליים
באמצעות Routes API אפשר לבקש מידע על תנאי התנועה לאורך קו פוליגון עם התחשבות בתנועה. מידע נוסף זמין במאמר בקשה לקו פוליגון.