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