מודלים של תנועה מתבססים על אלגוריתמים וגורמים ספציפיים כדי לחזות איך תנאי התנועה ישפיעו על זמן הנסיעה הכולל במסלול נתון. ב-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"