העדפות התנועה שבוחרים מאזנות בין הדיוק של פרטי המסלול לבין ביצועי הבקשה באחת משתי דרכים:
Traffic aware – הצגת התוצאות המדויקות ביותר האפשריות (זמן אחזור ארוך יותר).
ללא התחשבות בתנועה – הצגת התוצאות במהירות האפשרית (זמן אחזור קצר ביותר).
כששולחים בקשה, צריך לשקול אם עדיף להחזיר את התוצאות המדויקות ביותר האפשריות או להחזיר תוצאות מהר ככל האפשר. ב-Routes API יש אפשרויות שמאפשרות לכם לקבוע את איכות נתוני התגובה לעומת זמן האחזור של התגובה.
איך מגדירים את רמת התנועה
ב-Routes API יש את האפשרויות RoutingPreference (ל-REST) ו-RoutingPreference (ל-gRPC) שמאפשרות לציין העדפות ניתוב לחישוב מסלולים.
ברירת המחדל היא תוצאות ללא נתוני תנועה. אפשר לבחור אפשרויות תעבורה באמצעות העדפות הניתוב TRAFFIC_UNAWARE
, TRAFFIC_AWARE
ו-TRAFFIC_AWARE_OPTIMAL
. כל העדפה לניתוב מניבה תוצאות שונות באיכות המסלול, בזמן ההגעה המשוער ובזמן האחזור של התגובה.
מצב התנועה
מצב התנועה מאופיין לפי קצב זרימת התנועה:
תנועה רגילה: אין עומס תנועה והתנועה זורמת במהירות רגילה.
תנועה קלה עד בינוני: עומס תנועה הולך וגובר, והתנועה זורמת במהירות מופחתת.
עומס תנועה כבד: עומס כבד מאוד, עם מהירות תנועה נמוכה מאוד.
תנועה לא מודעת
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.
כשמשתמשים באפשרות הזו עם Compute Route Matrix, מספר הרכיבים בבקשה (מספר מקורות x מספר יעדים) לא יכול לחרוג מ-
- מידע נוסף על המגבלות של Compute Route Matrix זמין במאמר חישוב מטריצה של נתיבי עיבוד נתונים.
אלה התשובות שיוצגו:
duration
: זמן ההגעה המשוער למסלול, בהתאם למידע על מצב התנועה בזמן אמת.staticDuration
: זמן ההגעה המשוער למסלול, לפי נתוני תנועה היסטוריים בלבד.
הגדרת שעת יציאה (אופציונלי)
צריך להשתמש במאפיין הזה רק לבקשות עם התחשבות בתנועה, שבהן שעת היציאה צריכה להיות בעתיד. אם לא מגדירים את המאפיין departureTime
, ברירת המחדל היא השעה שבה הבקשה נשלחת.
משתמשים במאפיין departureTime
יחד עם האפשרויות TRAFFIC_AWARE
ו-TRAFFIC_AWARE_OPTIMAL
כשרוצים לשנות את האופן שבו השירות מנבא את התנועה בזמן בחירת המסלול.
TRAFFIC_UNAWARE
: לא מומלץ כי בחירת המסלול והמשך הנסיעה מבוססים על רשת הכבישים ועל תנאי התנועה הממוצעים שאינם תלויים בזמן.TRAFFIC_AWARE
ו-TRAFFIC_AWARE_OPTIMAL
: מומלץ לנסיעות שיוצאות בעתיד הקרוב, כי ההעדפות האלה מביאות בחשבון את תנאי התנועה בזמן אמת. ככל שהזמןdepartureTime
קרוב יותר ל'עכשיו', כך תנועת הגולשים בזמן אמת הופכת להיות חשובה ורלוונטית יותר. ככל שזמן היציאה מוגדר לתאריך עתידי רחוק יותר, כך המערכת מביאה בחשבון יותר את תנאי התנועה ההיסטוריים בבחירת המסלולים.
דוגמה: איך בוחרים ניתוב שמתחשב בתנועה
קוד ה-JSON הבא מדגים איך להגדיר את העדפת הניתוב TRAFFIC_AWARE_OPTIMAL
בגוף הישות של הודעת הבקשה.
{ "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 אפשר לבקש מידע על תנאי התנועה לאורך קו פוליגון עם התחשבות בתנועה. מידע נוסף זמין במאמר בקשה לקו פוליגון.