מודלים של תנועה משתמשים באלגוריתמים ובגורמים ספציפיים כדי לחזות איך תנאי התנועה ישפיעו על זמן הנסיעה הכולל במסלול נתון. ב-Routes API יש סוגים שונים של מודלים לתנועת כלי רכב, שמאפשרים לתת עדיפות לגורמים שונים שמשמשים לחישוב משך הנסיעה בתנועה. אתם יכולים לציין את סוג מודל התנועה שבו אתם רוצים להשתמש בחישוב משך הזמן של המסלולים או מטריצת המסלולים. כשמגדירים את סוג מודל התנועה, הערך שמוחזר בשדה duration משתנה בהתאם למודל התנועה שנבחר.
גם ב-Routes API Compute Routes וגם ב-Compute Route Matrix methods יש תמיכה בסוגים של מודלים לתנועה.
כברירת מחדל, בשתי השיטות נעשה שימוש בסוג מודל התנועה BEST_GUESS.
כדי לציין סוג תנועה
מגדירים את המוצא ואת היעד.
אם שעת ההמראה היא בעתיד, צריך להוסיף את השעה באמצעות הפרמטר
departure_time. אם לא מציינים שעת יציאה, ברירת המחדל היא 'עכשיו'.מגדירים את הפרמטר
routingPreferenceלערךTRAFFIC_AWARE_OPTIMAL. הגדרת הערך שלroutingPreferenceכ-TRAFFIC_UNAWAREאו כ-TRAFFIC_AWAREלא תואמת לפרמטרtrafficModel.בוחרים את מודל התנועה שבו רוצים להשתמש עם הפרמטר
trafficModelואחד מהסוגים הבאים:
BEST_GUESS(ברירת מחדל) כדי לבקש שהערך שיוחזרduration_in_trafficיהיה ההערכה הטובה ביותר של זמן הנסיעה, בהתחשב בנתונים הידועים על מצב התנועה ההיסטורי ועל התנועה בזמן אמת. עדכוני תנועה בזמן אמת חשובים יותר ככל שהשעהdeparture_timeקרובה יותר לשעה הנוכחית. שימוש בסוג ברירת המחדלBEST_GUESSמספק את התחזיות הכי שימושיות לרוב המכריע של תרחישי השימוש.
PESSIMISTICלבקש שהמודליםduration_in_trafficיחזו את הזמן על סמך מצב התנועה ההיסטורי בימים עם עומסי תנועה. הסוג הזה מספק משך זמן משוער שסביר להניח שהוא ארוך יותר מזמן הנסיעה בפועל ברוב הימים. יכול להיות שבימים מסוימים עם תנאים גרועים במיוחד, ההוצאה תהיה גבוהה יותר מההערכה הזו.
OPTIMISTICכדי לבקש מהמודלים שהוחזרוduration_in_trafficלחשב את הזמן על סמך מצב התנועה ההיסטורי בימים שבהם התנועה טובה. הסוג הזה נותן משך זמן משוער שסביר להניח שהוא קצר יותר מזמן הנסיעה בפועל ברוב הימים. יכול להיות שבימים מסוימים עם תנאים טובים במיוחד, המהירות תהיה גבוהה יותר מההערכה הזו.
לדוגמה:
"trafficModel": "OPTIMISTIC"
מציינים את השדה
routes.durationבמסכת השדות.REST
-H X-Goog-FieldMask: routes.duration
RPC
const (fieldMask = "routes.duration")
כשמשתמשים ב-Routes API כדי לאמוד את הזמן שיידרש להגעה ליעד, המערכת משתמשת בסוג מודל התנועה שביקשתם.
דוגמה: בקשה למודל תנועה
לדוגמה, בבקשה הזו מצוין שהמשך יימדד באמצעות סוג מודל התנועה OPTIMISTIC בשעת יציאה ספציפית:
curl -X POST -H 'content-type: application/json' -d ' { "origin": { "address": "Kyoto, Japan" }, "destination": { "placeId": "ChIJrYtcv-urAWAR3XzWvXv8n_s" }, "travelMode": "DRIVE", "routingPreference": "TRAFFIC_AWARE_OPTIMAL", "trafficModel": "OPTIMISTIC" }' \ -H 'Content-Type: application/json' \ -H 'X-Goog-Api-Key: YOUR_API_KEY' \ -H 'X-Goog-FieldMask: routes.duration' \ 'https://routes.googleapis.com/directions/v2:computeRoutes'
הבקשה הזו מחזירה את משך הזמן המשוער של הנסיעה באמצעות סוג מודל התנועה OPTIMISTIC:
"duration": "1238s"
אם משנים את סוג מודל התנועה ל-PESSIMISTIC, משך הזמן שמוחזר ארוך יותר:
"duration": "2436s"